1 /**** BSIM3v3.3.0, Released by Xuemei Xi 07/29/2005 ****/
2 
3 /**********
4  * Copyright 2004 Regents of the University of California. All rights reserved.
5  * File: b3mpar.c of BSIM3v3.3.0
6  * Author: 1995 Min-Chie Jeng and Mansun Chan.
7  * Author: 1997-1999 Weidong Liu.
8  * Author: 2001  Xuemei Xi
9  **********/
10 
11 #include "ngspice/ngspice.h"
12 #include "bsim3def.h"
13 #include "ngspice/ifsim.h"
14 #include "ngspice/sperror.h"
15 #include "ngspice/suffix.h"
16 
17 
18 int
BSIM3mParam(int param,IFvalue * value,GENmodel * inMod)19 BSIM3mParam(
20 int param,
21 IFvalue *value,
22 GENmodel *inMod)
23 {
24     BSIM3model *mod = (BSIM3model*)inMod;
25     switch(param)
26     {   case  BSIM3_MOD_MOBMOD :
27             mod->BSIM3mobMod = value->iValue;
28             mod->BSIM3mobModGiven = TRUE;
29             break;
30         case  BSIM3_MOD_BINUNIT :
31             mod->BSIM3binUnit = value->iValue;
32             mod->BSIM3binUnitGiven = TRUE;
33             break;
34         case  BSIM3_MOD_PARAMCHK :
35             mod->BSIM3paramChk = value->iValue;
36             mod->BSIM3paramChkGiven = TRUE;
37             break;
38         case  BSIM3_MOD_CAPMOD :
39             mod->BSIM3capMod = value->iValue;
40             mod->BSIM3capModGiven = TRUE;
41             break;
42         case BSIM3_MOD_ACMMOD:
43             mod->BSIM3acmMod = value->iValue;
44             mod->BSIM3acmModGiven = TRUE;
45             break;
46         case BSIM3_MOD_CALCACM:
47             mod->BSIM3calcacm = value->iValue;
48             mod->BSIM3calcacmGiven = TRUE;
49             break;
50         case  BSIM3_MOD_NOIMOD :
51             mod->BSIM3noiMod = value->iValue;
52             mod->BSIM3noiModGiven = TRUE;
53             break;
54         case  BSIM3_MOD_NQSMOD :
55             mod->BSIM3nqsMod = value->iValue;
56             mod->BSIM3nqsModGiven = TRUE;
57             break;
58         case  BSIM3_MOD_ACNQSMOD :
59             mod->BSIM3acnqsMod = value->iValue;
60             mod->BSIM3acnqsModGiven = TRUE;
61             break;
62         case  BSIM3_MOD_VERSION :
63             mod->BSIM3version = value->sValue;
64             mod->BSIM3versionGiven = TRUE;
65             break;
66         case  BSIM3_MOD_TOX :
67             mod->BSIM3tox = value->rValue;
68             mod->BSIM3toxGiven = TRUE;
69             break;
70         case  BSIM3_MOD_TOXM :
71             mod->BSIM3toxm = value->rValue;
72             mod->BSIM3toxmGiven = TRUE;
73             break;
74 
75         case  BSIM3_MOD_CDSC :
76             mod->BSIM3cdsc = value->rValue;
77             mod->BSIM3cdscGiven = TRUE;
78             break;
79         case  BSIM3_MOD_CDSCB :
80             mod->BSIM3cdscb = value->rValue;
81             mod->BSIM3cdscbGiven = TRUE;
82             break;
83 
84         case  BSIM3_MOD_CDSCD :
85             mod->BSIM3cdscd = value->rValue;
86             mod->BSIM3cdscdGiven = TRUE;
87             break;
88 
89         case  BSIM3_MOD_CIT :
90             mod->BSIM3cit = value->rValue;
91             mod->BSIM3citGiven = TRUE;
92             break;
93         case  BSIM3_MOD_NFACTOR :
94             mod->BSIM3nfactor = value->rValue;
95             mod->BSIM3nfactorGiven = TRUE;
96             break;
97         case BSIM3_MOD_XJ:
98             mod->BSIM3xj = value->rValue;
99             mod->BSIM3xjGiven = TRUE;
100             break;
101         case BSIM3_MOD_VSAT:
102             mod->BSIM3vsat = value->rValue;
103             mod->BSIM3vsatGiven = TRUE;
104             break;
105         case BSIM3_MOD_A0:
106             mod->BSIM3a0 = value->rValue;
107             mod->BSIM3a0Given = TRUE;
108             break;
109 
110         case BSIM3_MOD_AGS:
111             mod->BSIM3ags= value->rValue;
112             mod->BSIM3agsGiven = TRUE;
113             break;
114 
115         case BSIM3_MOD_A1:
116             mod->BSIM3a1 = value->rValue;
117             mod->BSIM3a1Given = TRUE;
118             break;
119         case BSIM3_MOD_A2:
120             mod->BSIM3a2 = value->rValue;
121             mod->BSIM3a2Given = TRUE;
122             break;
123         case BSIM3_MOD_AT:
124             mod->BSIM3at = value->rValue;
125             mod->BSIM3atGiven = TRUE;
126             break;
127         case BSIM3_MOD_KETA:
128             mod->BSIM3keta = value->rValue;
129             mod->BSIM3ketaGiven = TRUE;
130             break;
131         case BSIM3_MOD_NSUB:
132             mod->BSIM3nsub = value->rValue;
133             mod->BSIM3nsubGiven = TRUE;
134             break;
135         case BSIM3_MOD_NPEAK:
136             mod->BSIM3npeak = value->rValue;
137             mod->BSIM3npeakGiven = TRUE;
138             if (mod->BSIM3npeak > 1.0e20)
139                 mod->BSIM3npeak *= 1.0e-6;
140             break;
141         case BSIM3_MOD_NGATE:
142             mod->BSIM3ngate = value->rValue;
143             mod->BSIM3ngateGiven = TRUE;
144             if (mod->BSIM3ngate > 1.000001e24)
145                 mod->BSIM3ngate *= 1.0e-6;
146             break;
147         case BSIM3_MOD_GAMMA1:
148             mod->BSIM3gamma1 = value->rValue;
149             mod->BSIM3gamma1Given = TRUE;
150             break;
151         case BSIM3_MOD_GAMMA2:
152             mod->BSIM3gamma2 = value->rValue;
153             mod->BSIM3gamma2Given = TRUE;
154             break;
155         case BSIM3_MOD_VBX:
156             mod->BSIM3vbx = value->rValue;
157             mod->BSIM3vbxGiven = TRUE;
158             break;
159         case BSIM3_MOD_VBM:
160             mod->BSIM3vbm = value->rValue;
161             mod->BSIM3vbmGiven = TRUE;
162             break;
163         case BSIM3_MOD_XT:
164             mod->BSIM3xt = value->rValue;
165             mod->BSIM3xtGiven = TRUE;
166             break;
167         case  BSIM3_MOD_K1:
168             mod->BSIM3k1 = value->rValue;
169             mod->BSIM3k1Given = TRUE;
170             break;
171         case  BSIM3_MOD_KT1:
172             mod->BSIM3kt1 = value->rValue;
173             mod->BSIM3kt1Given = TRUE;
174             break;
175         case  BSIM3_MOD_KT1L:
176             mod->BSIM3kt1l = value->rValue;
177             mod->BSIM3kt1lGiven = TRUE;
178             break;
179         case  BSIM3_MOD_KT2:
180             mod->BSIM3kt2 = value->rValue;
181             mod->BSIM3kt2Given = TRUE;
182             break;
183         case  BSIM3_MOD_K2:
184             mod->BSIM3k2 = value->rValue;
185             mod->BSIM3k2Given = TRUE;
186             break;
187         case  BSIM3_MOD_K3:
188             mod->BSIM3k3 = value->rValue;
189             mod->BSIM3k3Given = TRUE;
190             break;
191         case  BSIM3_MOD_K3B:
192             mod->BSIM3k3b = value->rValue;
193             mod->BSIM3k3bGiven = TRUE;
194             break;
195         case  BSIM3_MOD_NLX:
196             mod->BSIM3nlx = value->rValue;
197             mod->BSIM3nlxGiven = TRUE;
198             break;
199         case  BSIM3_MOD_W0:
200             mod->BSIM3w0 = value->rValue;
201             mod->BSIM3w0Given = TRUE;
202             break;
203         case  BSIM3_MOD_DVT0:
204             mod->BSIM3dvt0 = value->rValue;
205             mod->BSIM3dvt0Given = TRUE;
206             break;
207         case  BSIM3_MOD_DVT1:
208             mod->BSIM3dvt1 = value->rValue;
209             mod->BSIM3dvt1Given = TRUE;
210             break;
211         case  BSIM3_MOD_DVT2:
212             mod->BSIM3dvt2 = value->rValue;
213             mod->BSIM3dvt2Given = TRUE;
214             break;
215         case  BSIM3_MOD_DVT0W:
216             mod->BSIM3dvt0w = value->rValue;
217             mod->BSIM3dvt0wGiven = TRUE;
218             break;
219         case  BSIM3_MOD_DVT1W:
220             mod->BSIM3dvt1w = value->rValue;
221             mod->BSIM3dvt1wGiven = TRUE;
222             break;
223         case  BSIM3_MOD_DVT2W:
224             mod->BSIM3dvt2w = value->rValue;
225             mod->BSIM3dvt2wGiven = TRUE;
226             break;
227         case  BSIM3_MOD_DROUT:
228             mod->BSIM3drout = value->rValue;
229             mod->BSIM3droutGiven = TRUE;
230             break;
231         case  BSIM3_MOD_DSUB:
232             mod->BSIM3dsub = value->rValue;
233             mod->BSIM3dsubGiven = TRUE;
234             break;
235         case BSIM3_MOD_VTH0:
236             mod->BSIM3vth0 = value->rValue;
237             mod->BSIM3vth0Given = TRUE;
238             break;
239         case BSIM3_MOD_UA:
240             mod->BSIM3ua = value->rValue;
241             mod->BSIM3uaGiven = TRUE;
242             break;
243         case BSIM3_MOD_UA1:
244             mod->BSIM3ua1 = value->rValue;
245             mod->BSIM3ua1Given = TRUE;
246             break;
247         case BSIM3_MOD_UB:
248             mod->BSIM3ub = value->rValue;
249             mod->BSIM3ubGiven = TRUE;
250             break;
251         case BSIM3_MOD_UB1:
252             mod->BSIM3ub1 = value->rValue;
253             mod->BSIM3ub1Given = TRUE;
254             break;
255         case BSIM3_MOD_UC:
256             mod->BSIM3uc = value->rValue;
257             mod->BSIM3ucGiven = TRUE;
258             break;
259         case BSIM3_MOD_UC1:
260             mod->BSIM3uc1 = value->rValue;
261             mod->BSIM3uc1Given = TRUE;
262             break;
263         case  BSIM3_MOD_U0 :
264             mod->BSIM3u0 = value->rValue;
265             mod->BSIM3u0Given = TRUE;
266             break;
267         case  BSIM3_MOD_UTE :
268             mod->BSIM3ute = value->rValue;
269             mod->BSIM3uteGiven = TRUE;
270             break;
271         case BSIM3_MOD_VOFF:
272             mod->BSIM3voff = value->rValue;
273             mod->BSIM3voffGiven = TRUE;
274             break;
275         case  BSIM3_MOD_DELTA :
276             mod->BSIM3delta = value->rValue;
277             mod->BSIM3deltaGiven = TRUE;
278             break;
279         case BSIM3_MOD_RDSW:
280             mod->BSIM3rdsw = value->rValue;
281             mod->BSIM3rdswGiven = TRUE;
282             break;
283         case BSIM3_MOD_PRWG:
284             mod->BSIM3prwg = value->rValue;
285             mod->BSIM3prwgGiven = TRUE;
286             break;
287         case BSIM3_MOD_PRWB:
288             mod->BSIM3prwb = value->rValue;
289             mod->BSIM3prwbGiven = TRUE;
290             break;
291         case BSIM3_MOD_PRT:
292             mod->BSIM3prt = value->rValue;
293             mod->BSIM3prtGiven = TRUE;
294             break;
295         case BSIM3_MOD_ETA0:
296             mod->BSIM3eta0 = value->rValue;
297             mod->BSIM3eta0Given = TRUE;
298             break;
299         case BSIM3_MOD_ETAB:
300             mod->BSIM3etab = value->rValue;
301             mod->BSIM3etabGiven = TRUE;
302             break;
303         case BSIM3_MOD_PCLM:
304             mod->BSIM3pclm = value->rValue;
305             mod->BSIM3pclmGiven = TRUE;
306             break;
307         case BSIM3_MOD_PDIBL1:
308             mod->BSIM3pdibl1 = value->rValue;
309             mod->BSIM3pdibl1Given = TRUE;
310             break;
311         case BSIM3_MOD_PDIBL2:
312             mod->BSIM3pdibl2 = value->rValue;
313             mod->BSIM3pdibl2Given = TRUE;
314             break;
315         case BSIM3_MOD_PDIBLB:
316             mod->BSIM3pdiblb = value->rValue;
317             mod->BSIM3pdiblbGiven = TRUE;
318             break;
319         case BSIM3_MOD_PSCBE1:
320             mod->BSIM3pscbe1 = value->rValue;
321             mod->BSIM3pscbe1Given = TRUE;
322             break;
323         case BSIM3_MOD_PSCBE2:
324             mod->BSIM3pscbe2 = value->rValue;
325             mod->BSIM3pscbe2Given = TRUE;
326             break;
327         case BSIM3_MOD_PVAG:
328             mod->BSIM3pvag = value->rValue;
329             mod->BSIM3pvagGiven = TRUE;
330             break;
331         case  BSIM3_MOD_WR :
332             mod->BSIM3wr = value->rValue;
333             mod->BSIM3wrGiven = TRUE;
334             break;
335         case  BSIM3_MOD_DWG :
336             mod->BSIM3dwg = value->rValue;
337             mod->BSIM3dwgGiven = TRUE;
338             break;
339         case  BSIM3_MOD_DWB :
340             mod->BSIM3dwb = value->rValue;
341             mod->BSIM3dwbGiven = TRUE;
342             break;
343         case  BSIM3_MOD_B0 :
344             mod->BSIM3b0 = value->rValue;
345             mod->BSIM3b0Given = TRUE;
346             break;
347         case  BSIM3_MOD_B1 :
348             mod->BSIM3b1 = value->rValue;
349             mod->BSIM3b1Given = TRUE;
350             break;
351         case  BSIM3_MOD_ALPHA0 :
352             mod->BSIM3alpha0 = value->rValue;
353             mod->BSIM3alpha0Given = TRUE;
354             break;
355         case  BSIM3_MOD_ALPHA1 :
356             mod->BSIM3alpha1 = value->rValue;
357             mod->BSIM3alpha1Given = TRUE;
358             break;
359         case  BSIM3_MOD_BETA0 :
360             mod->BSIM3beta0 = value->rValue;
361             mod->BSIM3beta0Given = TRUE;
362             break;
363         case  BSIM3_MOD_IJTH :
364             mod->BSIM3ijth = value->rValue;
365             mod->BSIM3ijthGiven = TRUE;
366             break;
367         case  BSIM3_MOD_VFB :
368             mod->BSIM3vfb = value->rValue;
369             mod->BSIM3vfbGiven = TRUE;
370             break;
371 
372         case  BSIM3_MOD_ELM :
373             mod->BSIM3elm = value->rValue;
374             mod->BSIM3elmGiven = TRUE;
375             break;
376         case  BSIM3_MOD_CGSL :
377             mod->BSIM3cgsl = value->rValue;
378             mod->BSIM3cgslGiven = TRUE;
379             break;
380         case  BSIM3_MOD_CGDL :
381             mod->BSIM3cgdl = value->rValue;
382             mod->BSIM3cgdlGiven = TRUE;
383             break;
384         case  BSIM3_MOD_CKAPPA :
385             mod->BSIM3ckappa = value->rValue;
386             mod->BSIM3ckappaGiven = TRUE;
387             break;
388         case  BSIM3_MOD_CF :
389             mod->BSIM3cf = value->rValue;
390             mod->BSIM3cfGiven = TRUE;
391             break;
392         case  BSIM3_MOD_CLC :
393             mod->BSIM3clc = value->rValue;
394             mod->BSIM3clcGiven = TRUE;
395             break;
396         case  BSIM3_MOD_CLE :
397             mod->BSIM3cle = value->rValue;
398             mod->BSIM3cleGiven = TRUE;
399             break;
400         case  BSIM3_MOD_DWC :
401             mod->BSIM3dwc = value->rValue;
402             mod->BSIM3dwcGiven = TRUE;
403             break;
404         case  BSIM3_MOD_DLC :
405             mod->BSIM3dlc = value->rValue;
406             mod->BSIM3dlcGiven = TRUE;
407             break;
408         case  BSIM3_MOD_VFBCV :
409             mod->BSIM3vfbcv = value->rValue;
410             mod->BSIM3vfbcvGiven = TRUE;
411             break;
412         case  BSIM3_MOD_ACDE :
413             mod->BSIM3acde = value->rValue;
414             mod->BSIM3acdeGiven = TRUE;
415             break;
416         case  BSIM3_MOD_MOIN :
417             mod->BSIM3moin = value->rValue;
418             mod->BSIM3moinGiven = TRUE;
419             break;
420         case  BSIM3_MOD_NOFF :
421             mod->BSIM3noff = value->rValue;
422             mod->BSIM3noffGiven = TRUE;
423             break;
424         case  BSIM3_MOD_VOFFCV :
425             mod->BSIM3voffcv = value->rValue;
426             mod->BSIM3voffcvGiven = TRUE;
427             break;
428         case  BSIM3_MOD_TCJ :
429             mod->BSIM3tcj = value->rValue;
430             mod->BSIM3tcjGiven = TRUE;
431             break;
432         case  BSIM3_MOD_TPB :
433             mod->BSIM3tpb = value->rValue;
434             mod->BSIM3tpbGiven = TRUE;
435             break;
436         case  BSIM3_MOD_TCJSW :
437             mod->BSIM3tcjsw = value->rValue;
438             mod->BSIM3tcjswGiven = TRUE;
439             break;
440         case  BSIM3_MOD_TPBSW :
441             mod->BSIM3tpbsw = value->rValue;
442             mod->BSIM3tpbswGiven = TRUE;
443             break;
444         case  BSIM3_MOD_TCJSWG :
445             mod->BSIM3tcjswg = value->rValue;
446             mod->BSIM3tcjswgGiven = TRUE;
447             break;
448         case  BSIM3_MOD_TPBSWG :
449             mod->BSIM3tpbswg = value->rValue;
450             mod->BSIM3tpbswgGiven = TRUE;
451             break;
452 
453           /* acm model */
454         case BSIM3_MOD_HDIF:
455             mod->BSIM3hdif = value->rValue;
456             mod->BSIM3hdifGiven = TRUE;
457             break;
458         case BSIM3_MOD_LDIF:
459             mod->BSIM3ldif = value->rValue;
460             mod->BSIM3ldifGiven = TRUE;
461             break;
462         case BSIM3_MOD_LD:
463             mod->BSIM3ld = value->rValue;
464             mod->BSIM3ldGiven = TRUE;
465             break;
466         case BSIM3_MOD_RD:
467             mod->BSIM3rd = value->rValue;
468             mod->BSIM3rdGiven = TRUE;
469             break;
470         case BSIM3_MOD_RS:
471             mod->BSIM3rs = value->rValue;
472             mod->BSIM3rsGiven = TRUE;
473             break;
474         case BSIM3_MOD_RDC:
475             mod->BSIM3rdc = value->rValue;
476             mod->BSIM3rdcGiven = TRUE;
477             break;
478         case BSIM3_MOD_RSC:
479             mod->BSIM3rsc = value->rValue;
480             mod->BSIM3rscGiven = TRUE;
481             break;
482         case BSIM3_MOD_WMLT:
483             mod->BSIM3wmlt = value->rValue;
484             mod->BSIM3wmltGiven = TRUE;
485             break;
486 
487         /* Length dependence */
488         case  BSIM3_MOD_LCDSC :
489             mod->BSIM3lcdsc = value->rValue;
490             mod->BSIM3lcdscGiven = TRUE;
491             break;
492 
493 
494         case  BSIM3_MOD_LCDSCB :
495             mod->BSIM3lcdscb = value->rValue;
496             mod->BSIM3lcdscbGiven = TRUE;
497             break;
498         case  BSIM3_MOD_LCDSCD :
499             mod->BSIM3lcdscd = value->rValue;
500             mod->BSIM3lcdscdGiven = TRUE;
501             break;
502         case  BSIM3_MOD_LCIT :
503             mod->BSIM3lcit = value->rValue;
504             mod->BSIM3lcitGiven = TRUE;
505             break;
506         case  BSIM3_MOD_LNFACTOR :
507             mod->BSIM3lnfactor = value->rValue;
508             mod->BSIM3lnfactorGiven = TRUE;
509             break;
510         case BSIM3_MOD_LXJ:
511             mod->BSIM3lxj = value->rValue;
512             mod->BSIM3lxjGiven = TRUE;
513             break;
514         case BSIM3_MOD_LVSAT:
515             mod->BSIM3lvsat = value->rValue;
516             mod->BSIM3lvsatGiven = TRUE;
517             break;
518 
519 
520         case BSIM3_MOD_LA0:
521             mod->BSIM3la0 = value->rValue;
522             mod->BSIM3la0Given = TRUE;
523             break;
524         case BSIM3_MOD_LAGS:
525             mod->BSIM3lags = value->rValue;
526             mod->BSIM3lagsGiven = TRUE;
527             break;
528         case BSIM3_MOD_LA1:
529             mod->BSIM3la1 = value->rValue;
530             mod->BSIM3la1Given = TRUE;
531             break;
532         case BSIM3_MOD_LA2:
533             mod->BSIM3la2 = value->rValue;
534             mod->BSIM3la2Given = TRUE;
535             break;
536         case BSIM3_MOD_LAT:
537             mod->BSIM3lat = value->rValue;
538             mod->BSIM3latGiven = TRUE;
539             break;
540         case BSIM3_MOD_LKETA:
541             mod->BSIM3lketa = value->rValue;
542             mod->BSIM3lketaGiven = TRUE;
543             break;
544         case BSIM3_MOD_LNSUB:
545             mod->BSIM3lnsub = value->rValue;
546             mod->BSIM3lnsubGiven = TRUE;
547             break;
548         case BSIM3_MOD_LNPEAK:
549             mod->BSIM3lnpeak = value->rValue;
550             mod->BSIM3lnpeakGiven = TRUE;
551             if (mod->BSIM3lnpeak > 1.0e20)
552                 mod->BSIM3lnpeak *= 1.0e-6;
553             break;
554         case BSIM3_MOD_LNGATE:
555             mod->BSIM3lngate = value->rValue;
556             mod->BSIM3lngateGiven = TRUE;
557             if (mod->BSIM3lngate > 1.0e23)
558                 mod->BSIM3lngate *= 1.0e-6;
559             break;
560         case BSIM3_MOD_LGAMMA1:
561             mod->BSIM3lgamma1 = value->rValue;
562             mod->BSIM3lgamma1Given = TRUE;
563             break;
564         case BSIM3_MOD_LGAMMA2:
565             mod->BSIM3lgamma2 = value->rValue;
566             mod->BSIM3lgamma2Given = TRUE;
567             break;
568         case BSIM3_MOD_LVBX:
569             mod->BSIM3lvbx = value->rValue;
570             mod->BSIM3lvbxGiven = TRUE;
571             break;
572         case BSIM3_MOD_LVBM:
573             mod->BSIM3lvbm = value->rValue;
574             mod->BSIM3lvbmGiven = TRUE;
575             break;
576         case BSIM3_MOD_LXT:
577             mod->BSIM3lxt = value->rValue;
578             mod->BSIM3lxtGiven = TRUE;
579             break;
580         case  BSIM3_MOD_LK1:
581             mod->BSIM3lk1 = value->rValue;
582             mod->BSIM3lk1Given = TRUE;
583             break;
584         case  BSIM3_MOD_LKT1:
585             mod->BSIM3lkt1 = value->rValue;
586             mod->BSIM3lkt1Given = TRUE;
587             break;
588         case  BSIM3_MOD_LKT1L:
589             mod->BSIM3lkt1l = value->rValue;
590             mod->BSIM3lkt1lGiven = TRUE;
591             break;
592         case  BSIM3_MOD_LKT2:
593             mod->BSIM3lkt2 = value->rValue;
594             mod->BSIM3lkt2Given = TRUE;
595             break;
596         case  BSIM3_MOD_LK2:
597             mod->BSIM3lk2 = value->rValue;
598             mod->BSIM3lk2Given = TRUE;
599             break;
600         case  BSIM3_MOD_LK3:
601             mod->BSIM3lk3 = value->rValue;
602             mod->BSIM3lk3Given = TRUE;
603             break;
604         case  BSIM3_MOD_LK3B:
605             mod->BSIM3lk3b = value->rValue;
606             mod->BSIM3lk3bGiven = TRUE;
607             break;
608         case  BSIM3_MOD_LNLX:
609             mod->BSIM3lnlx = value->rValue;
610             mod->BSIM3lnlxGiven = TRUE;
611             break;
612         case  BSIM3_MOD_LW0:
613             mod->BSIM3lw0 = value->rValue;
614             mod->BSIM3lw0Given = TRUE;
615             break;
616         case  BSIM3_MOD_LDVT0:
617             mod->BSIM3ldvt0 = value->rValue;
618             mod->BSIM3ldvt0Given = TRUE;
619             break;
620         case  BSIM3_MOD_LDVT1:
621             mod->BSIM3ldvt1 = value->rValue;
622             mod->BSIM3ldvt1Given = TRUE;
623             break;
624         case  BSIM3_MOD_LDVT2:
625             mod->BSIM3ldvt2 = value->rValue;
626             mod->BSIM3ldvt2Given = TRUE;
627             break;
628         case  BSIM3_MOD_LDVT0W:
629             mod->BSIM3ldvt0w = value->rValue;
630             mod->BSIM3ldvt0wGiven = TRUE;
631             break;
632         case  BSIM3_MOD_LDVT1W:
633             mod->BSIM3ldvt1w = value->rValue;
634             mod->BSIM3ldvt1wGiven = TRUE;
635             break;
636         case  BSIM3_MOD_LDVT2W:
637             mod->BSIM3ldvt2w = value->rValue;
638             mod->BSIM3ldvt2wGiven = TRUE;
639             break;
640         case  BSIM3_MOD_LDROUT:
641             mod->BSIM3ldrout = value->rValue;
642             mod->BSIM3ldroutGiven = TRUE;
643             break;
644         case  BSIM3_MOD_LDSUB:
645             mod->BSIM3ldsub = value->rValue;
646             mod->BSIM3ldsubGiven = TRUE;
647             break;
648         case BSIM3_MOD_LVTH0:
649             mod->BSIM3lvth0 = value->rValue;
650             mod->BSIM3lvth0Given = TRUE;
651             break;
652         case BSIM3_MOD_LUA:
653             mod->BSIM3lua = value->rValue;
654             mod->BSIM3luaGiven = TRUE;
655             break;
656         case BSIM3_MOD_LUA1:
657             mod->BSIM3lua1 = value->rValue;
658             mod->BSIM3lua1Given = TRUE;
659             break;
660         case BSIM3_MOD_LUB:
661             mod->BSIM3lub = value->rValue;
662             mod->BSIM3lubGiven = TRUE;
663             break;
664         case BSIM3_MOD_LUB1:
665             mod->BSIM3lub1 = value->rValue;
666             mod->BSIM3lub1Given = TRUE;
667             break;
668         case BSIM3_MOD_LUC:
669             mod->BSIM3luc = value->rValue;
670             mod->BSIM3lucGiven = TRUE;
671             break;
672         case BSIM3_MOD_LUC1:
673             mod->BSIM3luc1 = value->rValue;
674             mod->BSIM3luc1Given = TRUE;
675             break;
676         case  BSIM3_MOD_LU0 :
677             mod->BSIM3lu0 = value->rValue;
678             mod->BSIM3lu0Given = TRUE;
679             break;
680         case  BSIM3_MOD_LUTE :
681             mod->BSIM3lute = value->rValue;
682             mod->BSIM3luteGiven = TRUE;
683             break;
684         case BSIM3_MOD_LVOFF:
685             mod->BSIM3lvoff = value->rValue;
686             mod->BSIM3lvoffGiven = TRUE;
687             break;
688         case  BSIM3_MOD_LDELTA :
689             mod->BSIM3ldelta = value->rValue;
690             mod->BSIM3ldeltaGiven = TRUE;
691             break;
692         case BSIM3_MOD_LRDSW:
693             mod->BSIM3lrdsw = value->rValue;
694             mod->BSIM3lrdswGiven = TRUE;
695             break;
696         case BSIM3_MOD_LPRWB:
697             mod->BSIM3lprwb = value->rValue;
698             mod->BSIM3lprwbGiven = TRUE;
699             break;
700         case BSIM3_MOD_LPRWG:
701             mod->BSIM3lprwg = value->rValue;
702             mod->BSIM3lprwgGiven = TRUE;
703             break;
704         case BSIM3_MOD_LPRT:
705             mod->BSIM3lprt = value->rValue;
706             mod->BSIM3lprtGiven = TRUE;
707             break;
708         case BSIM3_MOD_LETA0:
709             mod->BSIM3leta0 = value->rValue;
710             mod->BSIM3leta0Given = TRUE;
711             break;
712         case BSIM3_MOD_LETAB:
713             mod->BSIM3letab = value->rValue;
714             mod->BSIM3letabGiven = TRUE;
715             break;
716         case BSIM3_MOD_LPCLM:
717             mod->BSIM3lpclm = value->rValue;
718             mod->BSIM3lpclmGiven = TRUE;
719             break;
720         case BSIM3_MOD_LPDIBL1:
721             mod->BSIM3lpdibl1 = value->rValue;
722             mod->BSIM3lpdibl1Given = TRUE;
723             break;
724         case BSIM3_MOD_LPDIBL2:
725             mod->BSIM3lpdibl2 = value->rValue;
726             mod->BSIM3lpdibl2Given = TRUE;
727             break;
728         case BSIM3_MOD_LPDIBLB:
729             mod->BSIM3lpdiblb = value->rValue;
730             mod->BSIM3lpdiblbGiven = TRUE;
731             break;
732         case BSIM3_MOD_LPSCBE1:
733             mod->BSIM3lpscbe1 = value->rValue;
734             mod->BSIM3lpscbe1Given = TRUE;
735             break;
736         case BSIM3_MOD_LPSCBE2:
737             mod->BSIM3lpscbe2 = value->rValue;
738             mod->BSIM3lpscbe2Given = TRUE;
739             break;
740         case BSIM3_MOD_LPVAG:
741             mod->BSIM3lpvag = value->rValue;
742             mod->BSIM3lpvagGiven = TRUE;
743             break;
744         case  BSIM3_MOD_LWR :
745             mod->BSIM3lwr = value->rValue;
746             mod->BSIM3lwrGiven = TRUE;
747             break;
748         case  BSIM3_MOD_LDWG :
749             mod->BSIM3ldwg = value->rValue;
750             mod->BSIM3ldwgGiven = TRUE;
751             break;
752         case  BSIM3_MOD_LDWB :
753             mod->BSIM3ldwb = value->rValue;
754             mod->BSIM3ldwbGiven = TRUE;
755             break;
756         case  BSIM3_MOD_LB0 :
757             mod->BSIM3lb0 = value->rValue;
758             mod->BSIM3lb0Given = TRUE;
759             break;
760         case  BSIM3_MOD_LB1 :
761             mod->BSIM3lb1 = value->rValue;
762             mod->BSIM3lb1Given = TRUE;
763             break;
764         case  BSIM3_MOD_LALPHA0 :
765             mod->BSIM3lalpha0 = value->rValue;
766             mod->BSIM3lalpha0Given = TRUE;
767             break;
768         case  BSIM3_MOD_LALPHA1 :
769             mod->BSIM3lalpha1 = value->rValue;
770             mod->BSIM3lalpha1Given = TRUE;
771             break;
772         case  BSIM3_MOD_LBETA0 :
773             mod->BSIM3lbeta0 = value->rValue;
774             mod->BSIM3lbeta0Given = TRUE;
775             break;
776         case  BSIM3_MOD_LVFB :
777             mod->BSIM3lvfb = value->rValue;
778             mod->BSIM3lvfbGiven = TRUE;
779             break;
780 
781         case  BSIM3_MOD_LELM :
782             mod->BSIM3lelm = value->rValue;
783             mod->BSIM3lelmGiven = TRUE;
784             break;
785         case  BSIM3_MOD_LCGSL :
786             mod->BSIM3lcgsl = value->rValue;
787             mod->BSIM3lcgslGiven = TRUE;
788             break;
789         case  BSIM3_MOD_LCGDL :
790             mod->BSIM3lcgdl = value->rValue;
791             mod->BSIM3lcgdlGiven = TRUE;
792             break;
793         case  BSIM3_MOD_LCKAPPA :
794             mod->BSIM3lckappa = value->rValue;
795             mod->BSIM3lckappaGiven = TRUE;
796             break;
797         case  BSIM3_MOD_LCF :
798             mod->BSIM3lcf = value->rValue;
799             mod->BSIM3lcfGiven = TRUE;
800             break;
801         case  BSIM3_MOD_LCLC :
802             mod->BSIM3lclc = value->rValue;
803             mod->BSIM3lclcGiven = TRUE;
804             break;
805         case  BSIM3_MOD_LCLE :
806             mod->BSIM3lcle = value->rValue;
807             mod->BSIM3lcleGiven = TRUE;
808             break;
809         case  BSIM3_MOD_LVFBCV :
810             mod->BSIM3lvfbcv = value->rValue;
811             mod->BSIM3lvfbcvGiven = TRUE;
812             break;
813         case  BSIM3_MOD_LACDE :
814             mod->BSIM3lacde = value->rValue;
815             mod->BSIM3lacdeGiven = TRUE;
816             break;
817         case  BSIM3_MOD_LMOIN :
818             mod->BSIM3lmoin = value->rValue;
819             mod->BSIM3lmoinGiven = TRUE;
820             break;
821         case  BSIM3_MOD_LNOFF :
822             mod->BSIM3lnoff = value->rValue;
823             mod->BSIM3lnoffGiven = TRUE;
824             break;
825         case  BSIM3_MOD_LVOFFCV :
826             mod->BSIM3lvoffcv = value->rValue;
827             mod->BSIM3lvoffcvGiven = TRUE;
828             break;
829 
830         /* Width dependence */
831         case  BSIM3_MOD_WCDSC :
832             mod->BSIM3wcdsc = value->rValue;
833             mod->BSIM3wcdscGiven = TRUE;
834             break;
835 
836 
837          case  BSIM3_MOD_WCDSCB :
838             mod->BSIM3wcdscb = value->rValue;
839             mod->BSIM3wcdscbGiven = TRUE;
840             break;
841          case  BSIM3_MOD_WCDSCD :
842             mod->BSIM3wcdscd = value->rValue;
843             mod->BSIM3wcdscdGiven = TRUE;
844             break;
845         case  BSIM3_MOD_WCIT :
846             mod->BSIM3wcit = value->rValue;
847             mod->BSIM3wcitGiven = TRUE;
848             break;
849         case  BSIM3_MOD_WNFACTOR :
850             mod->BSIM3wnfactor = value->rValue;
851             mod->BSIM3wnfactorGiven = TRUE;
852             break;
853         case BSIM3_MOD_WXJ:
854             mod->BSIM3wxj = value->rValue;
855             mod->BSIM3wxjGiven = TRUE;
856             break;
857         case BSIM3_MOD_WVSAT:
858             mod->BSIM3wvsat = value->rValue;
859             mod->BSIM3wvsatGiven = TRUE;
860             break;
861 
862 
863         case BSIM3_MOD_WA0:
864             mod->BSIM3wa0 = value->rValue;
865             mod->BSIM3wa0Given = TRUE;
866             break;
867         case BSIM3_MOD_WAGS:
868             mod->BSIM3wags = value->rValue;
869             mod->BSIM3wagsGiven = TRUE;
870             break;
871         case BSIM3_MOD_WA1:
872             mod->BSIM3wa1 = value->rValue;
873             mod->BSIM3wa1Given = TRUE;
874             break;
875         case BSIM3_MOD_WA2:
876             mod->BSIM3wa2 = value->rValue;
877             mod->BSIM3wa2Given = TRUE;
878             break;
879         case BSIM3_MOD_WAT:
880             mod->BSIM3wat = value->rValue;
881             mod->BSIM3watGiven = TRUE;
882             break;
883         case BSIM3_MOD_WKETA:
884             mod->BSIM3wketa = value->rValue;
885             mod->BSIM3wketaGiven = TRUE;
886             break;
887         case BSIM3_MOD_WNSUB:
888             mod->BSIM3wnsub = value->rValue;
889             mod->BSIM3wnsubGiven = TRUE;
890             break;
891         case BSIM3_MOD_WNPEAK:
892             mod->BSIM3wnpeak = value->rValue;
893             mod->BSIM3wnpeakGiven = TRUE;
894             if (mod->BSIM3wnpeak > 1.0e20)
895                 mod->BSIM3wnpeak *= 1.0e-6;
896             break;
897         case BSIM3_MOD_WNGATE:
898             mod->BSIM3wngate = value->rValue;
899             mod->BSIM3wngateGiven = TRUE;
900             if (mod->BSIM3wngate > 1.0e23)
901                 mod->BSIM3wngate *= 1.0e-6;
902             break;
903         case BSIM3_MOD_WGAMMA1:
904             mod->BSIM3wgamma1 = value->rValue;
905             mod->BSIM3wgamma1Given = TRUE;
906             break;
907         case BSIM3_MOD_WGAMMA2:
908             mod->BSIM3wgamma2 = value->rValue;
909             mod->BSIM3wgamma2Given = TRUE;
910             break;
911         case BSIM3_MOD_WVBX:
912             mod->BSIM3wvbx = value->rValue;
913             mod->BSIM3wvbxGiven = TRUE;
914             break;
915         case BSIM3_MOD_WVBM:
916             mod->BSIM3wvbm = value->rValue;
917             mod->BSIM3wvbmGiven = TRUE;
918             break;
919         case BSIM3_MOD_WXT:
920             mod->BSIM3wxt = value->rValue;
921             mod->BSIM3wxtGiven = TRUE;
922             break;
923         case  BSIM3_MOD_WK1:
924             mod->BSIM3wk1 = value->rValue;
925             mod->BSIM3wk1Given = TRUE;
926             break;
927         case  BSIM3_MOD_WKT1:
928             mod->BSIM3wkt1 = value->rValue;
929             mod->BSIM3wkt1Given = TRUE;
930             break;
931         case  BSIM3_MOD_WKT1L:
932             mod->BSIM3wkt1l = value->rValue;
933             mod->BSIM3wkt1lGiven = TRUE;
934             break;
935         case  BSIM3_MOD_WKT2:
936             mod->BSIM3wkt2 = value->rValue;
937             mod->BSIM3wkt2Given = TRUE;
938             break;
939         case  BSIM3_MOD_WK2:
940             mod->BSIM3wk2 = value->rValue;
941             mod->BSIM3wk2Given = TRUE;
942             break;
943         case  BSIM3_MOD_WK3:
944             mod->BSIM3wk3 = value->rValue;
945             mod->BSIM3wk3Given = TRUE;
946             break;
947         case  BSIM3_MOD_WK3B:
948             mod->BSIM3wk3b = value->rValue;
949             mod->BSIM3wk3bGiven = TRUE;
950             break;
951         case  BSIM3_MOD_WNLX:
952             mod->BSIM3wnlx = value->rValue;
953             mod->BSIM3wnlxGiven = TRUE;
954             break;
955         case  BSIM3_MOD_WW0:
956             mod->BSIM3ww0 = value->rValue;
957             mod->BSIM3ww0Given = TRUE;
958             break;
959         case  BSIM3_MOD_WDVT0:
960             mod->BSIM3wdvt0 = value->rValue;
961             mod->BSIM3wdvt0Given = TRUE;
962             break;
963         case  BSIM3_MOD_WDVT1:
964             mod->BSIM3wdvt1 = value->rValue;
965             mod->BSIM3wdvt1Given = TRUE;
966             break;
967         case  BSIM3_MOD_WDVT2:
968             mod->BSIM3wdvt2 = value->rValue;
969             mod->BSIM3wdvt2Given = TRUE;
970             break;
971         case  BSIM3_MOD_WDVT0W:
972             mod->BSIM3wdvt0w = value->rValue;
973             mod->BSIM3wdvt0wGiven = TRUE;
974             break;
975         case  BSIM3_MOD_WDVT1W:
976             mod->BSIM3wdvt1w = value->rValue;
977             mod->BSIM3wdvt1wGiven = TRUE;
978             break;
979         case  BSIM3_MOD_WDVT2W:
980             mod->BSIM3wdvt2w = value->rValue;
981             mod->BSIM3wdvt2wGiven = TRUE;
982             break;
983         case  BSIM3_MOD_WDROUT:
984             mod->BSIM3wdrout = value->rValue;
985             mod->BSIM3wdroutGiven = TRUE;
986             break;
987         case  BSIM3_MOD_WDSUB:
988             mod->BSIM3wdsub = value->rValue;
989             mod->BSIM3wdsubGiven = TRUE;
990             break;
991         case BSIM3_MOD_WVTH0:
992             mod->BSIM3wvth0 = value->rValue;
993             mod->BSIM3wvth0Given = TRUE;
994             break;
995         case BSIM3_MOD_WUA:
996             mod->BSIM3wua = value->rValue;
997             mod->BSIM3wuaGiven = TRUE;
998             break;
999         case BSIM3_MOD_WUA1:
1000             mod->BSIM3wua1 = value->rValue;
1001             mod->BSIM3wua1Given = TRUE;
1002             break;
1003         case BSIM3_MOD_WUB:
1004             mod->BSIM3wub = value->rValue;
1005             mod->BSIM3wubGiven = TRUE;
1006             break;
1007         case BSIM3_MOD_WUB1:
1008             mod->BSIM3wub1 = value->rValue;
1009             mod->BSIM3wub1Given = TRUE;
1010             break;
1011         case BSIM3_MOD_WUC:
1012             mod->BSIM3wuc = value->rValue;
1013             mod->BSIM3wucGiven = TRUE;
1014             break;
1015         case BSIM3_MOD_WUC1:
1016             mod->BSIM3wuc1 = value->rValue;
1017             mod->BSIM3wuc1Given = TRUE;
1018             break;
1019         case  BSIM3_MOD_WU0 :
1020             mod->BSIM3wu0 = value->rValue;
1021             mod->BSIM3wu0Given = TRUE;
1022             break;
1023         case  BSIM3_MOD_WUTE :
1024             mod->BSIM3wute = value->rValue;
1025             mod->BSIM3wuteGiven = TRUE;
1026             break;
1027         case BSIM3_MOD_WVOFF:
1028             mod->BSIM3wvoff = value->rValue;
1029             mod->BSIM3wvoffGiven = TRUE;
1030             break;
1031         case  BSIM3_MOD_WDELTA :
1032             mod->BSIM3wdelta = value->rValue;
1033             mod->BSIM3wdeltaGiven = TRUE;
1034             break;
1035         case BSIM3_MOD_WRDSW:
1036             mod->BSIM3wrdsw = value->rValue;
1037             mod->BSIM3wrdswGiven = TRUE;
1038             break;
1039         case BSIM3_MOD_WPRWB:
1040             mod->BSIM3wprwb = value->rValue;
1041             mod->BSIM3wprwbGiven = TRUE;
1042             break;
1043         case BSIM3_MOD_WPRWG:
1044             mod->BSIM3wprwg = value->rValue;
1045             mod->BSIM3wprwgGiven = TRUE;
1046             break;
1047         case BSIM3_MOD_WPRT:
1048             mod->BSIM3wprt = value->rValue;
1049             mod->BSIM3wprtGiven = TRUE;
1050             break;
1051         case BSIM3_MOD_WETA0:
1052             mod->BSIM3weta0 = value->rValue;
1053             mod->BSIM3weta0Given = TRUE;
1054             break;
1055         case BSIM3_MOD_WETAB:
1056             mod->BSIM3wetab = value->rValue;
1057             mod->BSIM3wetabGiven = TRUE;
1058             break;
1059         case BSIM3_MOD_WPCLM:
1060             mod->BSIM3wpclm = value->rValue;
1061             mod->BSIM3wpclmGiven = TRUE;
1062             break;
1063         case BSIM3_MOD_WPDIBL1:
1064             mod->BSIM3wpdibl1 = value->rValue;
1065             mod->BSIM3wpdibl1Given = TRUE;
1066             break;
1067         case BSIM3_MOD_WPDIBL2:
1068             mod->BSIM3wpdibl2 = value->rValue;
1069             mod->BSIM3wpdibl2Given = TRUE;
1070             break;
1071         case BSIM3_MOD_WPDIBLB:
1072             mod->BSIM3wpdiblb = value->rValue;
1073             mod->BSIM3wpdiblbGiven = TRUE;
1074             break;
1075         case BSIM3_MOD_WPSCBE1:
1076             mod->BSIM3wpscbe1 = value->rValue;
1077             mod->BSIM3wpscbe1Given = TRUE;
1078             break;
1079         case BSIM3_MOD_WPSCBE2:
1080             mod->BSIM3wpscbe2 = value->rValue;
1081             mod->BSIM3wpscbe2Given = TRUE;
1082             break;
1083         case BSIM3_MOD_WPVAG:
1084             mod->BSIM3wpvag = value->rValue;
1085             mod->BSIM3wpvagGiven = TRUE;
1086             break;
1087         case  BSIM3_MOD_WWR :
1088             mod->BSIM3wwr = value->rValue;
1089             mod->BSIM3wwrGiven = TRUE;
1090             break;
1091         case  BSIM3_MOD_WDWG :
1092             mod->BSIM3wdwg = value->rValue;
1093             mod->BSIM3wdwgGiven = TRUE;
1094             break;
1095         case  BSIM3_MOD_WDWB :
1096             mod->BSIM3wdwb = value->rValue;
1097             mod->BSIM3wdwbGiven = TRUE;
1098             break;
1099         case  BSIM3_MOD_WB0 :
1100             mod->BSIM3wb0 = value->rValue;
1101             mod->BSIM3wb0Given = TRUE;
1102             break;
1103         case  BSIM3_MOD_WB1 :
1104             mod->BSIM3wb1 = value->rValue;
1105             mod->BSIM3wb1Given = TRUE;
1106             break;
1107         case  BSIM3_MOD_WALPHA0 :
1108             mod->BSIM3walpha0 = value->rValue;
1109             mod->BSIM3walpha0Given = TRUE;
1110             break;
1111         case  BSIM3_MOD_WALPHA1 :
1112             mod->BSIM3walpha1 = value->rValue;
1113             mod->BSIM3walpha1Given = TRUE;
1114             break;
1115         case  BSIM3_MOD_WBETA0 :
1116             mod->BSIM3wbeta0 = value->rValue;
1117             mod->BSIM3wbeta0Given = TRUE;
1118             break;
1119         case  BSIM3_MOD_WVFB :
1120             mod->BSIM3wvfb = value->rValue;
1121             mod->BSIM3wvfbGiven = TRUE;
1122             break;
1123 
1124         case  BSIM3_MOD_WELM :
1125             mod->BSIM3welm = value->rValue;
1126             mod->BSIM3welmGiven = TRUE;
1127             break;
1128         case  BSIM3_MOD_WCGSL :
1129             mod->BSIM3wcgsl = value->rValue;
1130             mod->BSIM3wcgslGiven = TRUE;
1131             break;
1132         case  BSIM3_MOD_WCGDL :
1133             mod->BSIM3wcgdl = value->rValue;
1134             mod->BSIM3wcgdlGiven = TRUE;
1135             break;
1136         case  BSIM3_MOD_WCKAPPA :
1137             mod->BSIM3wckappa = value->rValue;
1138             mod->BSIM3wckappaGiven = TRUE;
1139             break;
1140         case  BSIM3_MOD_WCF :
1141             mod->BSIM3wcf = value->rValue;
1142             mod->BSIM3wcfGiven = TRUE;
1143             break;
1144         case  BSIM3_MOD_WCLC :
1145             mod->BSIM3wclc = value->rValue;
1146             mod->BSIM3wclcGiven = TRUE;
1147             break;
1148         case  BSIM3_MOD_WCLE :
1149             mod->BSIM3wcle = value->rValue;
1150             mod->BSIM3wcleGiven = TRUE;
1151             break;
1152         case  BSIM3_MOD_WVFBCV :
1153             mod->BSIM3wvfbcv = value->rValue;
1154             mod->BSIM3wvfbcvGiven = TRUE;
1155             break;
1156         case  BSIM3_MOD_WACDE :
1157             mod->BSIM3wacde = value->rValue;
1158             mod->BSIM3wacdeGiven = TRUE;
1159             break;
1160         case  BSIM3_MOD_WMOIN :
1161             mod->BSIM3wmoin = value->rValue;
1162             mod->BSIM3wmoinGiven = TRUE;
1163             break;
1164         case  BSIM3_MOD_WNOFF :
1165             mod->BSIM3wnoff = value->rValue;
1166             mod->BSIM3wnoffGiven = TRUE;
1167             break;
1168         case  BSIM3_MOD_WVOFFCV :
1169             mod->BSIM3wvoffcv = value->rValue;
1170             mod->BSIM3wvoffcvGiven = TRUE;
1171             break;
1172 
1173         /* Cross-term dependence */
1174         case  BSIM3_MOD_PCDSC :
1175             mod->BSIM3pcdsc = value->rValue;
1176             mod->BSIM3pcdscGiven = TRUE;
1177             break;
1178 
1179 
1180         case  BSIM3_MOD_PCDSCB :
1181             mod->BSIM3pcdscb = value->rValue;
1182             mod->BSIM3pcdscbGiven = TRUE;
1183             break;
1184         case  BSIM3_MOD_PCDSCD :
1185             mod->BSIM3pcdscd = value->rValue;
1186             mod->BSIM3pcdscdGiven = TRUE;
1187             break;
1188         case  BSIM3_MOD_PCIT :
1189             mod->BSIM3pcit = value->rValue;
1190             mod->BSIM3pcitGiven = TRUE;
1191             break;
1192         case  BSIM3_MOD_PNFACTOR :
1193             mod->BSIM3pnfactor = value->rValue;
1194             mod->BSIM3pnfactorGiven = TRUE;
1195             break;
1196         case BSIM3_MOD_PXJ:
1197             mod->BSIM3pxj = value->rValue;
1198             mod->BSIM3pxjGiven = TRUE;
1199             break;
1200         case BSIM3_MOD_PVSAT:
1201             mod->BSIM3pvsat = value->rValue;
1202             mod->BSIM3pvsatGiven = TRUE;
1203             break;
1204 
1205 
1206         case BSIM3_MOD_PA0:
1207             mod->BSIM3pa0 = value->rValue;
1208             mod->BSIM3pa0Given = TRUE;
1209             break;
1210         case BSIM3_MOD_PAGS:
1211             mod->BSIM3pags = value->rValue;
1212             mod->BSIM3pagsGiven = TRUE;
1213             break;
1214         case BSIM3_MOD_PA1:
1215             mod->BSIM3pa1 = value->rValue;
1216             mod->BSIM3pa1Given = TRUE;
1217             break;
1218         case BSIM3_MOD_PA2:
1219             mod->BSIM3pa2 = value->rValue;
1220             mod->BSIM3pa2Given = TRUE;
1221             break;
1222         case BSIM3_MOD_PAT:
1223             mod->BSIM3pat = value->rValue;
1224             mod->BSIM3patGiven = TRUE;
1225             break;
1226         case BSIM3_MOD_PKETA:
1227             mod->BSIM3pketa = value->rValue;
1228             mod->BSIM3pketaGiven = TRUE;
1229             break;
1230         case BSIM3_MOD_PNSUB:
1231             mod->BSIM3pnsub = value->rValue;
1232             mod->BSIM3pnsubGiven = TRUE;
1233             break;
1234         case BSIM3_MOD_PNPEAK:
1235             mod->BSIM3pnpeak = value->rValue;
1236             mod->BSIM3pnpeakGiven = TRUE;
1237             if (mod->BSIM3pnpeak > 1.0e20)
1238                 mod->BSIM3pnpeak *= 1.0e-6;
1239             break;
1240         case BSIM3_MOD_PNGATE:
1241             mod->BSIM3pngate = value->rValue;
1242             mod->BSIM3pngateGiven = TRUE;
1243             if (mod->BSIM3pngate > 1.0e23)
1244                 mod->BSIM3pngate *= 1.0e-6;
1245             break;
1246         case BSIM3_MOD_PGAMMA1:
1247             mod->BSIM3pgamma1 = value->rValue;
1248             mod->BSIM3pgamma1Given = TRUE;
1249             break;
1250         case BSIM3_MOD_PGAMMA2:
1251             mod->BSIM3pgamma2 = value->rValue;
1252             mod->BSIM3pgamma2Given = TRUE;
1253             break;
1254         case BSIM3_MOD_PVBX:
1255             mod->BSIM3pvbx = value->rValue;
1256             mod->BSIM3pvbxGiven = TRUE;
1257             break;
1258         case BSIM3_MOD_PVBM:
1259             mod->BSIM3pvbm = value->rValue;
1260             mod->BSIM3pvbmGiven = TRUE;
1261             break;
1262         case BSIM3_MOD_PXT:
1263             mod->BSIM3pxt = value->rValue;
1264             mod->BSIM3pxtGiven = TRUE;
1265             break;
1266         case  BSIM3_MOD_PK1:
1267             mod->BSIM3pk1 = value->rValue;
1268             mod->BSIM3pk1Given = TRUE;
1269             break;
1270         case  BSIM3_MOD_PKT1:
1271             mod->BSIM3pkt1 = value->rValue;
1272             mod->BSIM3pkt1Given = TRUE;
1273             break;
1274         case  BSIM3_MOD_PKT1L:
1275             mod->BSIM3pkt1l = value->rValue;
1276             mod->BSIM3pkt1lGiven = TRUE;
1277             break;
1278         case  BSIM3_MOD_PKT2:
1279             mod->BSIM3pkt2 = value->rValue;
1280             mod->BSIM3pkt2Given = TRUE;
1281             break;
1282         case  BSIM3_MOD_PK2:
1283             mod->BSIM3pk2 = value->rValue;
1284             mod->BSIM3pk2Given = TRUE;
1285             break;
1286         case  BSIM3_MOD_PK3:
1287             mod->BSIM3pk3 = value->rValue;
1288             mod->BSIM3pk3Given = TRUE;
1289             break;
1290         case  BSIM3_MOD_PK3B:
1291             mod->BSIM3pk3b = value->rValue;
1292             mod->BSIM3pk3bGiven = TRUE;
1293             break;
1294         case  BSIM3_MOD_PNLX:
1295             mod->BSIM3pnlx = value->rValue;
1296             mod->BSIM3pnlxGiven = TRUE;
1297             break;
1298         case  BSIM3_MOD_PW0:
1299             mod->BSIM3pw0 = value->rValue;
1300             mod->BSIM3pw0Given = TRUE;
1301             break;
1302         case  BSIM3_MOD_PDVT0:
1303             mod->BSIM3pdvt0 = value->rValue;
1304             mod->BSIM3pdvt0Given = TRUE;
1305             break;
1306         case  BSIM3_MOD_PDVT1:
1307             mod->BSIM3pdvt1 = value->rValue;
1308             mod->BSIM3pdvt1Given = TRUE;
1309             break;
1310         case  BSIM3_MOD_PDVT2:
1311             mod->BSIM3pdvt2 = value->rValue;
1312             mod->BSIM3pdvt2Given = TRUE;
1313             break;
1314         case  BSIM3_MOD_PDVT0W:
1315             mod->BSIM3pdvt0w = value->rValue;
1316             mod->BSIM3pdvt0wGiven = TRUE;
1317             break;
1318         case  BSIM3_MOD_PDVT1W:
1319             mod->BSIM3pdvt1w = value->rValue;
1320             mod->BSIM3pdvt1wGiven = TRUE;
1321             break;
1322         case  BSIM3_MOD_PDVT2W:
1323             mod->BSIM3pdvt2w = value->rValue;
1324             mod->BSIM3pdvt2wGiven = TRUE;
1325             break;
1326         case  BSIM3_MOD_PDROUT:
1327             mod->BSIM3pdrout = value->rValue;
1328             mod->BSIM3pdroutGiven = TRUE;
1329             break;
1330         case  BSIM3_MOD_PDSUB:
1331             mod->BSIM3pdsub = value->rValue;
1332             mod->BSIM3pdsubGiven = TRUE;
1333             break;
1334         case BSIM3_MOD_PVTH0:
1335             mod->BSIM3pvth0 = value->rValue;
1336             mod->BSIM3pvth0Given = TRUE;
1337             break;
1338         case BSIM3_MOD_PUA:
1339             mod->BSIM3pua = value->rValue;
1340             mod->BSIM3puaGiven = TRUE;
1341             break;
1342         case BSIM3_MOD_PUA1:
1343             mod->BSIM3pua1 = value->rValue;
1344             mod->BSIM3pua1Given = TRUE;
1345             break;
1346         case BSIM3_MOD_PUB:
1347             mod->BSIM3pub = value->rValue;
1348             mod->BSIM3pubGiven = TRUE;
1349             break;
1350         case BSIM3_MOD_PUB1:
1351             mod->BSIM3pub1 = value->rValue;
1352             mod->BSIM3pub1Given = TRUE;
1353             break;
1354         case BSIM3_MOD_PUC:
1355             mod->BSIM3puc = value->rValue;
1356             mod->BSIM3pucGiven = TRUE;
1357             break;
1358         case BSIM3_MOD_PUC1:
1359             mod->BSIM3puc1 = value->rValue;
1360             mod->BSIM3puc1Given = TRUE;
1361             break;
1362         case  BSIM3_MOD_PU0 :
1363             mod->BSIM3pu0 = value->rValue;
1364             mod->BSIM3pu0Given = TRUE;
1365             break;
1366         case  BSIM3_MOD_PUTE :
1367             mod->BSIM3pute = value->rValue;
1368             mod->BSIM3puteGiven = TRUE;
1369             break;
1370         case BSIM3_MOD_PVOFF:
1371             mod->BSIM3pvoff = value->rValue;
1372             mod->BSIM3pvoffGiven = TRUE;
1373             break;
1374         case  BSIM3_MOD_PDELTA :
1375             mod->BSIM3pdelta = value->rValue;
1376             mod->BSIM3pdeltaGiven = TRUE;
1377             break;
1378         case BSIM3_MOD_PRDSW:
1379             mod->BSIM3prdsw = value->rValue;
1380             mod->BSIM3prdswGiven = TRUE;
1381             break;
1382         case BSIM3_MOD_PPRWB:
1383             mod->BSIM3pprwb = value->rValue;
1384             mod->BSIM3pprwbGiven = TRUE;
1385             break;
1386         case BSIM3_MOD_PPRWG:
1387             mod->BSIM3pprwg = value->rValue;
1388             mod->BSIM3pprwgGiven = TRUE;
1389             break;
1390         case BSIM3_MOD_PPRT:
1391             mod->BSIM3pprt = value->rValue;
1392             mod->BSIM3pprtGiven = TRUE;
1393             break;
1394         case BSIM3_MOD_PETA0:
1395             mod->BSIM3peta0 = value->rValue;
1396             mod->BSIM3peta0Given = TRUE;
1397             break;
1398         case BSIM3_MOD_PETAB:
1399             mod->BSIM3petab = value->rValue;
1400             mod->BSIM3petabGiven = TRUE;
1401             break;
1402         case BSIM3_MOD_PPCLM:
1403             mod->BSIM3ppclm = value->rValue;
1404             mod->BSIM3ppclmGiven = TRUE;
1405             break;
1406         case BSIM3_MOD_PPDIBL1:
1407             mod->BSIM3ppdibl1 = value->rValue;
1408             mod->BSIM3ppdibl1Given = TRUE;
1409             break;
1410         case BSIM3_MOD_PPDIBL2:
1411             mod->BSIM3ppdibl2 = value->rValue;
1412             mod->BSIM3ppdibl2Given = TRUE;
1413             break;
1414         case BSIM3_MOD_PPDIBLB:
1415             mod->BSIM3ppdiblb = value->rValue;
1416             mod->BSIM3ppdiblbGiven = TRUE;
1417             break;
1418         case BSIM3_MOD_PPSCBE1:
1419             mod->BSIM3ppscbe1 = value->rValue;
1420             mod->BSIM3ppscbe1Given = TRUE;
1421             break;
1422         case BSIM3_MOD_PPSCBE2:
1423             mod->BSIM3ppscbe2 = value->rValue;
1424             mod->BSIM3ppscbe2Given = TRUE;
1425             break;
1426         case BSIM3_MOD_PPVAG:
1427             mod->BSIM3ppvag = value->rValue;
1428             mod->BSIM3ppvagGiven = TRUE;
1429             break;
1430         case  BSIM3_MOD_PWR :
1431             mod->BSIM3pwr = value->rValue;
1432             mod->BSIM3pwrGiven = TRUE;
1433             break;
1434         case  BSIM3_MOD_PDWG :
1435             mod->BSIM3pdwg = value->rValue;
1436             mod->BSIM3pdwgGiven = TRUE;
1437             break;
1438         case  BSIM3_MOD_PDWB :
1439             mod->BSIM3pdwb = value->rValue;
1440             mod->BSIM3pdwbGiven = TRUE;
1441             break;
1442         case  BSIM3_MOD_PB0 :
1443             mod->BSIM3pb0 = value->rValue;
1444             mod->BSIM3pb0Given = TRUE;
1445             break;
1446         case  BSIM3_MOD_PB1 :
1447             mod->BSIM3pb1 = value->rValue;
1448             mod->BSIM3pb1Given = TRUE;
1449             break;
1450         case  BSIM3_MOD_PALPHA0 :
1451             mod->BSIM3palpha0 = value->rValue;
1452             mod->BSIM3palpha0Given = TRUE;
1453             break;
1454         case  BSIM3_MOD_PALPHA1 :
1455             mod->BSIM3palpha1 = value->rValue;
1456             mod->BSIM3palpha1Given = TRUE;
1457             break;
1458         case  BSIM3_MOD_PBETA0 :
1459             mod->BSIM3pbeta0 = value->rValue;
1460             mod->BSIM3pbeta0Given = TRUE;
1461             break;
1462         case  BSIM3_MOD_PVFB :
1463             mod->BSIM3pvfb = value->rValue;
1464             mod->BSIM3pvfbGiven = TRUE;
1465             break;
1466 
1467         case  BSIM3_MOD_PELM :
1468             mod->BSIM3pelm = value->rValue;
1469             mod->BSIM3pelmGiven = TRUE;
1470             break;
1471         case  BSIM3_MOD_PCGSL :
1472             mod->BSIM3pcgsl = value->rValue;
1473             mod->BSIM3pcgslGiven = TRUE;
1474             break;
1475         case  BSIM3_MOD_PCGDL :
1476             mod->BSIM3pcgdl = value->rValue;
1477             mod->BSIM3pcgdlGiven = TRUE;
1478             break;
1479         case  BSIM3_MOD_PCKAPPA :
1480             mod->BSIM3pckappa = value->rValue;
1481             mod->BSIM3pckappaGiven = TRUE;
1482             break;
1483         case  BSIM3_MOD_PCF :
1484             mod->BSIM3pcf = value->rValue;
1485             mod->BSIM3pcfGiven = TRUE;
1486             break;
1487         case  BSIM3_MOD_PCLC :
1488             mod->BSIM3pclc = value->rValue;
1489             mod->BSIM3pclcGiven = TRUE;
1490             break;
1491         case  BSIM3_MOD_PCLE :
1492             mod->BSIM3pcle = value->rValue;
1493             mod->BSIM3pcleGiven = TRUE;
1494             break;
1495         case  BSIM3_MOD_PVFBCV :
1496             mod->BSIM3pvfbcv = value->rValue;
1497             mod->BSIM3pvfbcvGiven = TRUE;
1498             break;
1499         case  BSIM3_MOD_PACDE :
1500             mod->BSIM3pacde = value->rValue;
1501             mod->BSIM3pacdeGiven = TRUE;
1502             break;
1503         case  BSIM3_MOD_PMOIN :
1504             mod->BSIM3pmoin = value->rValue;
1505             mod->BSIM3pmoinGiven = TRUE;
1506             break;
1507         case  BSIM3_MOD_PNOFF :
1508             mod->BSIM3pnoff = value->rValue;
1509             mod->BSIM3pnoffGiven = TRUE;
1510             break;
1511         case  BSIM3_MOD_PVOFFCV :
1512             mod->BSIM3pvoffcv = value->rValue;
1513             mod->BSIM3pvoffcvGiven = TRUE;
1514             break;
1515 
1516         case  BSIM3_MOD_TNOM :
1517             mod->BSIM3tnom = value->rValue + CONSTCtoK;
1518             mod->BSIM3tnomGiven = TRUE;
1519             break;
1520         case  BSIM3_MOD_CGSO :
1521             mod->BSIM3cgso = value->rValue;
1522             mod->BSIM3cgsoGiven = TRUE;
1523             break;
1524         case  BSIM3_MOD_CGDO :
1525             mod->BSIM3cgdo = value->rValue;
1526             mod->BSIM3cgdoGiven = TRUE;
1527             break;
1528         case  BSIM3_MOD_CGBO :
1529             mod->BSIM3cgbo = value->rValue;
1530             mod->BSIM3cgboGiven = TRUE;
1531             break;
1532         case  BSIM3_MOD_XPART :
1533             mod->BSIM3xpart = value->rValue;
1534             mod->BSIM3xpartGiven = TRUE;
1535             break;
1536         case  BSIM3_MOD_RSH :
1537             mod->BSIM3sheetResistance = value->rValue;
1538             mod->BSIM3sheetResistanceGiven = TRUE;
1539             break;
1540         case  BSIM3_MOD_JS :
1541             mod->BSIM3jctSatCurDensity = value->rValue;
1542             mod->BSIM3jctSatCurDensityGiven = TRUE;
1543             break;
1544         case  BSIM3_MOD_JSW :
1545             mod->BSIM3jctSidewallSatCurDensity = value->rValue;
1546             mod->BSIM3jctSidewallSatCurDensityGiven = TRUE;
1547             break;
1548         case  BSIM3_MOD_PB :
1549             mod->BSIM3bulkJctPotential = value->rValue;
1550             mod->BSIM3bulkJctPotentialGiven = TRUE;
1551             break;
1552         case  BSIM3_MOD_MJ :
1553             mod->BSIM3bulkJctBotGradingCoeff = value->rValue;
1554             mod->BSIM3bulkJctBotGradingCoeffGiven = TRUE;
1555             break;
1556         case  BSIM3_MOD_PBSW :
1557             mod->BSIM3sidewallJctPotential = value->rValue;
1558             mod->BSIM3sidewallJctPotentialGiven = TRUE;
1559             break;
1560         case  BSIM3_MOD_MJSW :
1561             mod->BSIM3bulkJctSideGradingCoeff = value->rValue;
1562             mod->BSIM3bulkJctSideGradingCoeffGiven = TRUE;
1563             break;
1564         case  BSIM3_MOD_CJ :
1565             mod->BSIM3unitAreaJctCap = value->rValue;
1566             mod->BSIM3unitAreaJctCapGiven = TRUE;
1567             break;
1568         case  BSIM3_MOD_CJSW :
1569             mod->BSIM3unitLengthSidewallJctCap = value->rValue;
1570             mod->BSIM3unitLengthSidewallJctCapGiven = TRUE;
1571             break;
1572         case  BSIM3_MOD_NJ :
1573             mod->BSIM3jctEmissionCoeff = value->rValue;
1574             mod->BSIM3jctEmissionCoeffGiven = TRUE;
1575             break;
1576         case  BSIM3_MOD_PBSWG :
1577             mod->BSIM3GatesidewallJctPotential = value->rValue;
1578             mod->BSIM3GatesidewallJctPotentialGiven = TRUE;
1579             break;
1580         case  BSIM3_MOD_MJSWG :
1581             mod->BSIM3bulkJctGateSideGradingCoeff = value->rValue;
1582             mod->BSIM3bulkJctGateSideGradingCoeffGiven = TRUE;
1583             break;
1584         case  BSIM3_MOD_CJSWG :
1585             mod->BSIM3unitLengthGateSidewallJctCap = value->rValue;
1586             mod->BSIM3unitLengthGateSidewallJctCapGiven = TRUE;
1587             break;
1588         case  BSIM3_MOD_XTI :
1589             mod->BSIM3jctTempExponent = value->rValue;
1590             mod->BSIM3jctTempExponentGiven = TRUE;
1591             break;
1592         case  BSIM3_MOD_LINTNOI:
1593             mod->BSIM3lintnoi = value->rValue;
1594             mod->BSIM3lintnoiGiven = TRUE;
1595             break;
1596         case  BSIM3_MOD_LINT :
1597             mod->BSIM3Lint = value->rValue;
1598             mod->BSIM3LintGiven = TRUE;
1599             break;
1600         case  BSIM3_MOD_LL :
1601             mod->BSIM3Ll = value->rValue;
1602             mod->BSIM3LlGiven = TRUE;
1603             break;
1604         case  BSIM3_MOD_LLC :
1605             mod->BSIM3Llc = value->rValue;
1606             mod->BSIM3LlcGiven = TRUE;
1607             break;
1608         case  BSIM3_MOD_LLN :
1609             mod->BSIM3Lln = value->rValue;
1610             mod->BSIM3LlnGiven = TRUE;
1611             break;
1612         case  BSIM3_MOD_LW :
1613             mod->BSIM3Lw = value->rValue;
1614             mod->BSIM3LwGiven = TRUE;
1615             break;
1616         case  BSIM3_MOD_LWC :
1617             mod->BSIM3Lwc = value->rValue;
1618             mod->BSIM3LwcGiven = TRUE;
1619             break;
1620         case  BSIM3_MOD_LWN :
1621             mod->BSIM3Lwn = value->rValue;
1622             mod->BSIM3LwnGiven = TRUE;
1623             break;
1624         case  BSIM3_MOD_LWL :
1625             mod->BSIM3Lwl = value->rValue;
1626             mod->BSIM3LwlGiven = TRUE;
1627             break;
1628         case  BSIM3_MOD_LWLC :
1629             mod->BSIM3Lwlc = value->rValue;
1630             mod->BSIM3LwlcGiven = TRUE;
1631             break;
1632         case  BSIM3_MOD_LMIN :
1633             mod->BSIM3Lmin = value->rValue;
1634             mod->BSIM3LminGiven = TRUE;
1635             break;
1636         case  BSIM3_MOD_LMAX :
1637             mod->BSIM3Lmax = value->rValue;
1638             mod->BSIM3LmaxGiven = TRUE;
1639             break;
1640         case  BSIM3_MOD_WINT :
1641             mod->BSIM3Wint = value->rValue;
1642             mod->BSIM3WintGiven = TRUE;
1643             break;
1644         case  BSIM3_MOD_WL :
1645             mod->BSIM3Wl = value->rValue;
1646             mod->BSIM3WlGiven = TRUE;
1647             break;
1648         case  BSIM3_MOD_WLC :
1649             mod->BSIM3Wlc = value->rValue;
1650             mod->BSIM3WlcGiven = TRUE;
1651             break;
1652         case  BSIM3_MOD_WLN :
1653             mod->BSIM3Wln = value->rValue;
1654             mod->BSIM3WlnGiven = TRUE;
1655             break;
1656         case  BSIM3_MOD_WW :
1657             mod->BSIM3Ww = value->rValue;
1658             mod->BSIM3WwGiven = TRUE;
1659             break;
1660         case  BSIM3_MOD_WWC :
1661             mod->BSIM3Wwc = value->rValue;
1662             mod->BSIM3WwcGiven = TRUE;
1663             break;
1664         case  BSIM3_MOD_WWN :
1665             mod->BSIM3Wwn = value->rValue;
1666             mod->BSIM3WwnGiven = TRUE;
1667             break;
1668         case  BSIM3_MOD_WWL :
1669             mod->BSIM3Wwl = value->rValue;
1670             mod->BSIM3WwlGiven = TRUE;
1671             break;
1672         case  BSIM3_MOD_WWLC :
1673             mod->BSIM3Wwlc = value->rValue;
1674             mod->BSIM3WwlcGiven = TRUE;
1675             break;
1676         case  BSIM3_MOD_WMIN :
1677             mod->BSIM3Wmin = value->rValue;
1678             mod->BSIM3WminGiven = TRUE;
1679             break;
1680         case  BSIM3_MOD_WMAX :
1681             mod->BSIM3Wmax = value->rValue;
1682             mod->BSIM3WmaxGiven = TRUE;
1683             break;
1684 
1685        case BSIM3_MOD_XL:
1686             mod->BSIM3xl = value->rValue;
1687             mod->BSIM3xlGiven = TRUE;
1688             break;
1689        case BSIM3_MOD_XW:
1690             mod->BSIM3xw = value->rValue;
1691             mod->BSIM3xwGiven = TRUE;
1692             break;
1693 
1694         case  BSIM3_MOD_NOIA :
1695             mod->BSIM3oxideTrapDensityA = value->rValue;
1696             mod->BSIM3oxideTrapDensityAGiven = TRUE;
1697             break;
1698         case  BSIM3_MOD_NOIB :
1699             mod->BSIM3oxideTrapDensityB = value->rValue;
1700             mod->BSIM3oxideTrapDensityBGiven = TRUE;
1701             break;
1702         case  BSIM3_MOD_NOIC :
1703             mod->BSIM3oxideTrapDensityC = value->rValue;
1704             mod->BSIM3oxideTrapDensityCGiven = TRUE;
1705             break;
1706         case  BSIM3_MOD_EM :
1707             mod->BSIM3em = value->rValue;
1708             mod->BSIM3emGiven = TRUE;
1709             break;
1710         case  BSIM3_MOD_EF :
1711             mod->BSIM3ef = value->rValue;
1712             mod->BSIM3efGiven = TRUE;
1713             break;
1714         case  BSIM3_MOD_AF :
1715             mod->BSIM3af = value->rValue;
1716             mod->BSIM3afGiven = TRUE;
1717             break;
1718         case  BSIM3_MOD_KF :
1719             mod->BSIM3kf = value->rValue;
1720             mod->BSIM3kfGiven = TRUE;
1721             break;
1722 
1723         case BSIM3_MOD_VGS_MAX:
1724             mod->BSIM3vgsMax = value->rValue;
1725             mod->BSIM3vgsMaxGiven = TRUE;
1726             break;
1727         case BSIM3_MOD_VGD_MAX:
1728             mod->BSIM3vgdMax = value->rValue;
1729             mod->BSIM3vgdMaxGiven = TRUE;
1730             break;
1731         case BSIM3_MOD_VGB_MAX:
1732             mod->BSIM3vgbMax = value->rValue;
1733             mod->BSIM3vgbMaxGiven = TRUE;
1734             break;
1735         case BSIM3_MOD_VDS_MAX:
1736             mod->BSIM3vdsMax = value->rValue;
1737             mod->BSIM3vdsMaxGiven = TRUE;
1738             break;
1739         case BSIM3_MOD_VBS_MAX:
1740             mod->BSIM3vbsMax = value->rValue;
1741             mod->BSIM3vbsMaxGiven = TRUE;
1742             break;
1743         case BSIM3_MOD_VBD_MAX:
1744             mod->BSIM3vbdMax = value->rValue;
1745             mod->BSIM3vbdMaxGiven = TRUE;
1746             break;
1747         case BSIM3_MOD_VGSR_MAX:
1748             mod->BSIM3vgsrMax = value->rValue;
1749             mod->BSIM3vgsrMaxGiven = TRUE;
1750             break;
1751         case BSIM3_MOD_VGDR_MAX:
1752             mod->BSIM3vgdrMax = value->rValue;
1753             mod->BSIM3vgdrMaxGiven = TRUE;
1754             break;
1755         case BSIM3_MOD_VGBR_MAX:
1756             mod->BSIM3vgbrMax = value->rValue;
1757             mod->BSIM3vgbrMaxGiven = TRUE;
1758             break;
1759         case BSIM3_MOD_VBSR_MAX:
1760             mod->BSIM3vbsrMax = value->rValue;
1761             mod->BSIM3vbsrMaxGiven = TRUE;
1762             break;
1763         case BSIM3_MOD_VBDR_MAX:
1764             mod->BSIM3vbdrMax = value->rValue;
1765             mod->BSIM3vbdrMaxGiven = TRUE;
1766             break;
1767 
1768         case  BSIM3_MOD_NMOS  :
1769             if(value->iValue) {
1770                 mod->BSIM3type = 1;
1771                 mod->BSIM3typeGiven = TRUE;
1772             }
1773             break;
1774         case  BSIM3_MOD_PMOS  :
1775             if(value->iValue) {
1776                 mod->BSIM3type = - 1;
1777                 mod->BSIM3typeGiven = TRUE;
1778             }
1779             break;
1780         default:
1781             return(E_BADPARM);
1782     }
1783     return(OK);
1784 }
1785 
1786 
1787