1 /* ******************************************************************************
2    *  BSIM4 4.8.1 released by Chetan Kumar Dabhi 2/15/2017                      *
3    *  BSIM4 Model Equations                                                     *
4    ******************************************************************************
5 
6    ******************************************************************************
7    *  Copyright 2017 Regents of the University of California.                   *
8    *  All rights reserved.                                                      *
9    *                                                                            *
10    *  Project Director: Prof. Chenming Hu.                                      *
11    *  Authors: Gary W. Ng, Weidong Liu, Xuemei Xi, Mohan Dunga, Wenwei Yang     *
12    *           Ali Niknejad, Shivendra Singh Parihar, Chetan Kumar Dabhi        *
13    *           Yogesh Singh Chauhan, Sayeef Salahuddin, Chenming Hu             *
14    ******************************************************************************
15 
16    ******************************************************************************
17    *                          CMC In-Code Statement                             *
18    *                                                                            *
19    *  The Developer agrees that the following statement will appear in the      *
20    *  model code that has been adopted as a CMC Standard.                       *
21    *                                                                            *
22    *  Software is distributed as is, completely without warranty or service     *
23    *  support. The University of California and its employees are not liable    *
24    *  for the condition or performance of the software.                         *
25    *                                                                            *
26    *  The University of California owns the copyright and grants users a        *
27    *  perpetual, irrevocable, worldwide, non-exclusive, royalty-free license    *
28    *  with respect to the software as set forth below.                          *
29    *                                                                            *
30    *  The University of California hereby disclaims all implied warranties.     *
31    *                                                                            *
32    *  The University of California grants the users the right to modify,        *
33    *  copy, and redistribute the software and documentation, both within        *
34    *  the user's organization and externally, subject to the following          *
35    *  restrictions:                                                             *
36    *                                                                            *
37    *  1. The users agree not to charge for the University of California code    *
38    *     itself but may charge for additions, extensions, or support.           *
39    *                                                                            *
40    *  2. In any product based on the software, the users agree to               *
41    *     acknowledge the University of California that developed the            *
42    *     software. This acknowledgment shall appear in the product              *
43    *     documentation.                                                         *
44    *                                                                            *
45    *  3. Redistributions to others of source code and documentation must        *
46    *     retain the copyright notice, disclaimer, and list of conditions.       *
47    *                                                                            *
48    *  4. Redistributions to others in binary form must reproduce the            *
49    *     copyright notice, disclaimer, and list of conditions in the            *
50    *     documentation and/or other materials provided with the                 *
51    *     distribution.                                                          *
52    *                                                                            *
53    *  Agreed to on ______Feb. 15, 2017______________                            *
54    *                                                                            *
55    *  By: ____University of California, Berkeley___                             *
56    *      ____Chenming Hu__________________________                             *
57    *      ____Professor in Graduate School ________                             *
58    *                                                                            *
59    ****************************************************************************** */
60 
61 #include "ngspice/ngspice.h"
62 #include "bsim4def.h"
63 #include "ngspice/ifsim.h"
64 #include "ngspice/sperror.h"
65 #include "ngspice/suffix.h"
66 #include "ngspice/const.h"
67 
68 int
BSIM4mParam(int param,IFvalue * value,GENmodel * inMod)69 BSIM4mParam(
70 int param,
71 IFvalue *value,
72 GENmodel *inMod)
73 {
74     BSIM4model *mod = (BSIM4model*)inMod;
75     switch(param)
76     {   case  BSIM4_MOD_MOBMOD :
77             mod->BSIM4mobMod = value->iValue;
78             mod->BSIM4mobModGiven = TRUE;
79             break;
80         case  BSIM4_MOD_BINUNIT :
81             mod->BSIM4binUnit = value->iValue;
82             mod->BSIM4binUnitGiven = TRUE;
83             break;
84         case  BSIM4_MOD_PARAMCHK :
85             mod->BSIM4paramChk = value->iValue;
86             mod->BSIM4paramChkGiven = TRUE;
87             break;
88         case  BSIM4_MOD_CVCHARGEMOD :
89             mod->BSIM4cvchargeMod = value->iValue;
90             mod->BSIM4cvchargeModGiven = TRUE;
91             break;
92         case  BSIM4_MOD_CAPMOD :
93             mod->BSIM4capMod = value->iValue;
94             mod->BSIM4capModGiven = TRUE;
95             break;
96         case  BSIM4_MOD_DIOMOD :
97             mod->BSIM4dioMod = value->iValue;
98             mod->BSIM4dioModGiven = TRUE;
99             break;
100         case  BSIM4_MOD_RDSMOD :
101             mod->BSIM4rdsMod = value->iValue;
102             mod->BSIM4rdsModGiven = TRUE;
103             break;
104         case  BSIM4_MOD_TRNQSMOD :
105             mod->BSIM4trnqsMod = value->iValue;
106             mod->BSIM4trnqsModGiven = TRUE;
107             break;
108         case  BSIM4_MOD_ACNQSMOD :
109             mod->BSIM4acnqsMod = value->iValue;
110             mod->BSIM4acnqsModGiven = TRUE;
111             break;
112         case  BSIM4_MOD_RBODYMOD :
113             mod->BSIM4rbodyMod = value->iValue;
114             mod->BSIM4rbodyModGiven = TRUE;
115             break;
116         case  BSIM4_MOD_RGATEMOD :
117             mod->BSIM4rgateMod = value->iValue;
118             mod->BSIM4rgateModGiven = TRUE;
119             break;
120         case  BSIM4_MOD_PERMOD :
121             mod->BSIM4perMod = value->iValue;
122             mod->BSIM4perModGiven = TRUE;
123             break;
124         case  BSIM4_MOD_GEOMOD :
125             mod->BSIM4geoMod = value->iValue;
126             mod->BSIM4geoModGiven = TRUE;
127             break;
128         case  BSIM4_MOD_RGEOMOD :
129             mod->BSIM4rgeoMod = value->iValue;
130             mod->BSIM4rgeoModGiven = TRUE;
131             break;
132         case  BSIM4_MOD_FNOIMOD :
133             mod->BSIM4fnoiMod = value->iValue;
134             mod->BSIM4fnoiModGiven = TRUE;
135             break;
136         case  BSIM4_MOD_TNOIMOD :
137             mod->BSIM4tnoiMod = value->iValue;
138             mod->BSIM4tnoiModGiven = TRUE;
139             break;
140         case  BSIM4_MOD_MTRLMOD :
141             mod->BSIM4mtrlMod = value->iValue;
142             mod->BSIM4mtrlModGiven = TRUE;
143             break;
144         case  BSIM4_MOD_MTRLCOMPATMOD :
145             mod->BSIM4mtrlCompatMod = value->iValue;
146             mod->BSIM4mtrlCompatModGiven = TRUE;
147             break;
148         case  BSIM4_MOD_GIDLMOD :        /* v4.7 New GIDL/GISL */
149             mod->BSIM4gidlMod = value->iValue;
150             mod->BSIM4gidlModGiven = TRUE;
151             break;
152         case  BSIM4_MOD_IGCMOD :
153             mod->BSIM4igcMod = value->iValue;
154             mod->BSIM4igcModGiven = TRUE;
155             break;
156         case  BSIM4_MOD_IGBMOD :
157             mod->BSIM4igbMod = value->iValue;
158             mod->BSIM4igbModGiven = TRUE;
159             break;
160         case  BSIM4_MOD_TEMPMOD :
161             mod->BSIM4tempMod = value->iValue;
162             mod->BSIM4tempModGiven = TRUE;
163             break;
164 
165         case  BSIM4_MOD_VERSION :
166             mod->BSIM4version = value->sValue;
167             mod->BSIM4versionGiven = TRUE;
168             break;
169         case  BSIM4_MOD_TOXREF :
170             mod->BSIM4toxref = value->rValue;
171             mod->BSIM4toxrefGiven = TRUE;
172             break;
173         case  BSIM4_MOD_EOT :
174             mod->BSIM4eot = value->rValue;
175             mod->BSIM4eotGiven = TRUE;
176             break;
177         case  BSIM4_MOD_VDDEOT :
178             mod->BSIM4vddeot = value->rValue;
179             mod->BSIM4vddeotGiven = TRUE;
180             break;
181         case  BSIM4_MOD_TEMPEOT :
182             mod->BSIM4tempeot = value->rValue;
183             mod->BSIM4tempeotGiven = TRUE;
184             break;
185         case  BSIM4_MOD_LEFFEOT :
186             mod->BSIM4leffeot = value->rValue;
187             mod->BSIM4leffeotGiven = TRUE;
188             break;
189          case  BSIM4_MOD_WEFFEOT :
190             mod->BSIM4weffeot = value->rValue;
191             mod->BSIM4weffeotGiven = TRUE;
192             break;
193          case  BSIM4_MOD_ADOS :
194             mod->BSIM4ados = value->rValue;
195             mod->BSIM4adosGiven = TRUE;
196             break;
197         case  BSIM4_MOD_BDOS :
198             mod->BSIM4bdos = value->rValue;
199             mod->BSIM4bdosGiven = TRUE;
200             break;
201        case  BSIM4_MOD_TOXE :
202             mod->BSIM4toxe = value->rValue;
203             mod->BSIM4toxeGiven = TRUE;
204             break;
205         case  BSIM4_MOD_TOXP :
206             mod->BSIM4toxp = value->rValue;
207             mod->BSIM4toxpGiven = TRUE;
208             break;
209         case  BSIM4_MOD_TOXM :
210             mod->BSIM4toxm = value->rValue;
211             mod->BSIM4toxmGiven = TRUE;
212             break;
213         case  BSIM4_MOD_DTOX :
214             mod->BSIM4dtox = value->rValue;
215             mod->BSIM4dtoxGiven = TRUE;
216             break;
217         case  BSIM4_MOD_EPSROX :
218             mod->BSIM4epsrox = value->rValue;
219             mod->BSIM4epsroxGiven = TRUE;
220             break;
221 
222         case  BSIM4_MOD_CDSC :
223             mod->BSIM4cdsc = value->rValue;
224             mod->BSIM4cdscGiven = TRUE;
225             break;
226         case  BSIM4_MOD_CDSCB :
227             mod->BSIM4cdscb = value->rValue;
228             mod->BSIM4cdscbGiven = TRUE;
229             break;
230 
231         case  BSIM4_MOD_CDSCD :
232             mod->BSIM4cdscd = value->rValue;
233             mod->BSIM4cdscdGiven = TRUE;
234             break;
235 
236         case  BSIM4_MOD_CIT :
237             mod->BSIM4cit = value->rValue;
238             mod->BSIM4citGiven = TRUE;
239             break;
240         case  BSIM4_MOD_NFACTOR :
241             mod->BSIM4nfactor = value->rValue;
242             mod->BSIM4nfactorGiven = TRUE;
243             break;
244         case BSIM4_MOD_XJ:
245             mod->BSIM4xj = value->rValue;
246             mod->BSIM4xjGiven = TRUE;
247             break;
248         case BSIM4_MOD_VSAT:
249             mod->BSIM4vsat = value->rValue;
250             mod->BSIM4vsatGiven = TRUE;
251             break;
252         case BSIM4_MOD_A0:
253             mod->BSIM4a0 = value->rValue;
254             mod->BSIM4a0Given = TRUE;
255             break;
256 
257         case BSIM4_MOD_AGS:
258             mod->BSIM4ags= value->rValue;
259             mod->BSIM4agsGiven = TRUE;
260             break;
261 
262         case BSIM4_MOD_A1:
263             mod->BSIM4a1 = value->rValue;
264             mod->BSIM4a1Given = TRUE;
265             break;
266         case BSIM4_MOD_A2:
267             mod->BSIM4a2 = value->rValue;
268             mod->BSIM4a2Given = TRUE;
269             break;
270         case BSIM4_MOD_AT:
271             mod->BSIM4at = value->rValue;
272             mod->BSIM4atGiven = TRUE;
273             break;
274         case BSIM4_MOD_KETA:
275             mod->BSIM4keta = value->rValue;
276             mod->BSIM4ketaGiven = TRUE;
277             break;
278         case BSIM4_MOD_NSUB:
279             mod->BSIM4nsub = value->rValue;
280             mod->BSIM4nsubGiven = TRUE;
281             break;
282         case BSIM4_MOD_PHIG:
283             mod->BSIM4phig = value->rValue;
284             mod->BSIM4phigGiven = TRUE;
285             break;
286         case BSIM4_MOD_EPSRGATE:
287             mod->BSIM4epsrgate = value->rValue;
288             mod->BSIM4epsrgateGiven = TRUE;
289             break;
290         case BSIM4_MOD_EASUB:
291             mod->BSIM4easub = value->rValue;
292             mod->BSIM4easubGiven = TRUE;
293             break;
294         case BSIM4_MOD_EPSRSUB:
295             mod->BSIM4epsrsub = value->rValue;
296             mod->BSIM4epsrsubGiven = TRUE;
297             break;
298         case BSIM4_MOD_NI0SUB:
299             mod->BSIM4ni0sub = value->rValue;
300             mod->BSIM4ni0subGiven = TRUE;
301             break;
302         case BSIM4_MOD_BG0SUB:
303             mod->BSIM4bg0sub = value->rValue;
304             mod->BSIM4bg0subGiven = TRUE;
305             break;
306         case BSIM4_MOD_TBGASUB:
307             mod->BSIM4tbgasub = value->rValue;
308             mod->BSIM4tbgasubGiven = TRUE;
309             break;
310         case BSIM4_MOD_TBGBSUB:
311             mod->BSIM4tbgbsub = value->rValue;
312             mod->BSIM4tbgbsubGiven = TRUE;
313             break;
314         case BSIM4_MOD_NDEP:
315             mod->BSIM4ndep = value->rValue;
316             mod->BSIM4ndepGiven = TRUE;
317             if (mod->BSIM4ndep > 1.0e20)
318                 mod->BSIM4ndep *= 1.0e-6;
319             break;
320         case BSIM4_MOD_NSD:
321             mod->BSIM4nsd = value->rValue;
322             mod->BSIM4nsdGiven = TRUE;
323             if (mod->BSIM4nsd > 1.000001e24)
324                 mod->BSIM4nsd *= 1.0e-6;
325             break;
326         case BSIM4_MOD_NGATE:
327             mod->BSIM4ngate = value->rValue;
328             mod->BSIM4ngateGiven = TRUE;
329             if (mod->BSIM4ngate > 1.000001e24)
330                 mod->BSIM4ngate *= 1.0e-6;
331             break;
332         case BSIM4_MOD_GAMMA1:
333             mod->BSIM4gamma1 = value->rValue;
334             mod->BSIM4gamma1Given = TRUE;
335             break;
336         case BSIM4_MOD_GAMMA2:
337             mod->BSIM4gamma2 = value->rValue;
338             mod->BSIM4gamma2Given = TRUE;
339             break;
340         case BSIM4_MOD_VBX:
341             mod->BSIM4vbx = value->rValue;
342             mod->BSIM4vbxGiven = TRUE;
343             break;
344         case BSIM4_MOD_VBM:
345             mod->BSIM4vbm = value->rValue;
346             mod->BSIM4vbmGiven = TRUE;
347             break;
348         case BSIM4_MOD_XT:
349             mod->BSIM4xt = value->rValue;
350             mod->BSIM4xtGiven = TRUE;
351             break;
352         case  BSIM4_MOD_K1:
353             mod->BSIM4k1 = value->rValue;
354             mod->BSIM4k1Given = TRUE;
355             break;
356         case  BSIM4_MOD_KT1:
357             mod->BSIM4kt1 = value->rValue;
358             mod->BSIM4kt1Given = TRUE;
359             break;
360         case  BSIM4_MOD_KT1L:
361             mod->BSIM4kt1l = value->rValue;
362             mod->BSIM4kt1lGiven = TRUE;
363             break;
364         case  BSIM4_MOD_KT2:
365             mod->BSIM4kt2 = value->rValue;
366             mod->BSIM4kt2Given = TRUE;
367             break;
368         case  BSIM4_MOD_K2:
369             mod->BSIM4k2 = value->rValue;
370             mod->BSIM4k2Given = TRUE;
371             break;
372         case  BSIM4_MOD_K3:
373             mod->BSIM4k3 = value->rValue;
374             mod->BSIM4k3Given = TRUE;
375             break;
376         case  BSIM4_MOD_K3B:
377             mod->BSIM4k3b = value->rValue;
378             mod->BSIM4k3bGiven = TRUE;
379             break;
380         case  BSIM4_MOD_LPE0:
381             mod->BSIM4lpe0 = value->rValue;
382             mod->BSIM4lpe0Given = TRUE;
383             break;
384         case  BSIM4_MOD_LPEB:
385             mod->BSIM4lpeb = value->rValue;
386             mod->BSIM4lpebGiven = TRUE;
387             break;
388         case  BSIM4_MOD_DVTP0:
389             mod->BSIM4dvtp0 = value->rValue;
390             mod->BSIM4dvtp0Given = TRUE;
391             break;
392         case  BSIM4_MOD_DVTP1:
393             mod->BSIM4dvtp1 = value->rValue;
394             mod->BSIM4dvtp1Given = TRUE;
395             break;
396         case  BSIM4_MOD_DVTP2:     /* New DIBL/Rout */
397             mod->BSIM4dvtp2 = value->rValue;
398             mod->BSIM4dvtp2Given = TRUE;
399             break;
400         case  BSIM4_MOD_DVTP3:
401             mod->BSIM4dvtp3 = value->rValue;
402             mod->BSIM4dvtp3Given = TRUE;
403             break;
404         case  BSIM4_MOD_DVTP4:
405             mod->BSIM4dvtp4 = value->rValue;
406             mod->BSIM4dvtp4Given = TRUE;
407             break;
408         case  BSIM4_MOD_DVTP5:
409             mod->BSIM4dvtp5 = value->rValue;
410             mod->BSIM4dvtp5Given = TRUE;
411             break;
412         case  BSIM4_MOD_W0:
413             mod->BSIM4w0 = value->rValue;
414             mod->BSIM4w0Given = TRUE;
415             break;
416         case  BSIM4_MOD_DVT0:
417             mod->BSIM4dvt0 = value->rValue;
418             mod->BSIM4dvt0Given = TRUE;
419             break;
420         case  BSIM4_MOD_DVT1:
421             mod->BSIM4dvt1 = value->rValue;
422             mod->BSIM4dvt1Given = TRUE;
423             break;
424         case  BSIM4_MOD_DVT2:
425             mod->BSIM4dvt2 = value->rValue;
426             mod->BSIM4dvt2Given = TRUE;
427             break;
428         case  BSIM4_MOD_DVT0W:
429             mod->BSIM4dvt0w = value->rValue;
430             mod->BSIM4dvt0wGiven = TRUE;
431             break;
432         case  BSIM4_MOD_DVT1W:
433             mod->BSIM4dvt1w = value->rValue;
434             mod->BSIM4dvt1wGiven = TRUE;
435             break;
436         case  BSIM4_MOD_DVT2W:
437             mod->BSIM4dvt2w = value->rValue;
438             mod->BSIM4dvt2wGiven = TRUE;
439             break;
440         case  BSIM4_MOD_DROUT:
441             mod->BSIM4drout = value->rValue;
442             mod->BSIM4droutGiven = TRUE;
443             break;
444         case  BSIM4_MOD_DSUB:
445             mod->BSIM4dsub = value->rValue;
446             mod->BSIM4dsubGiven = TRUE;
447             break;
448         case BSIM4_MOD_VTH0:
449             mod->BSIM4vth0 = value->rValue;
450             mod->BSIM4vth0Given = TRUE;
451             break;
452         case BSIM4_MOD_EU:
453             mod->BSIM4eu = value->rValue;
454             mod->BSIM4euGiven = TRUE;
455             break;
456                 case BSIM4_MOD_UCS:
457             mod->BSIM4ucs = value->rValue;
458             mod->BSIM4ucsGiven = TRUE;
459             break;
460         case BSIM4_MOD_UA:
461             mod->BSIM4ua = value->rValue;
462             mod->BSIM4uaGiven = TRUE;
463             break;
464         case BSIM4_MOD_UA1:
465             mod->BSIM4ua1 = value->rValue;
466             mod->BSIM4ua1Given = TRUE;
467             break;
468         case BSIM4_MOD_UB:
469             mod->BSIM4ub = value->rValue;
470             mod->BSIM4ubGiven = TRUE;
471             break;
472         case BSIM4_MOD_UB1:
473             mod->BSIM4ub1 = value->rValue;
474             mod->BSIM4ub1Given = TRUE;
475             break;
476         case BSIM4_MOD_UC:
477             mod->BSIM4uc = value->rValue;
478             mod->BSIM4ucGiven = TRUE;
479             break;
480         case BSIM4_MOD_UC1:
481             mod->BSIM4uc1 = value->rValue;
482             mod->BSIM4uc1Given = TRUE;
483             break;
484         case  BSIM4_MOD_U0 :
485             mod->BSIM4u0 = value->rValue;
486             mod->BSIM4u0Given = TRUE;
487             break;
488         case  BSIM4_MOD_UTE :
489             mod->BSIM4ute = value->rValue;
490             mod->BSIM4uteGiven = TRUE;
491             break;
492         case  BSIM4_MOD_UCSTE :
493             mod->BSIM4ucste = value->rValue;
494             mod->BSIM4ucsteGiven = TRUE;
495             break;
496         case BSIM4_MOD_UD:
497             mod->BSIM4ud = value->rValue;
498             mod->BSIM4udGiven = TRUE;
499             break;
500         case BSIM4_MOD_UD1:
501             mod->BSIM4ud1 = value->rValue;
502             mod->BSIM4ud1Given = TRUE;
503             break;
504         case BSIM4_MOD_UP:
505             mod->BSIM4up = value->rValue;
506             mod->BSIM4upGiven = TRUE;
507             break;
508         case BSIM4_MOD_LP:
509             mod->BSIM4lp = value->rValue;
510             mod->BSIM4lpGiven = TRUE;
511             break;
512         case BSIM4_MOD_LUD:
513             mod->BSIM4lud = value->rValue;
514             mod->BSIM4ludGiven = TRUE;
515             break;
516         case BSIM4_MOD_LUD1:
517             mod->BSIM4lud1 = value->rValue;
518             mod->BSIM4lud1Given = TRUE;
519             break;
520         case BSIM4_MOD_LUP:
521             mod->BSIM4lup = value->rValue;
522             mod->BSIM4lupGiven = TRUE;
523             break;
524         case BSIM4_MOD_LLP:
525             mod->BSIM4llp = value->rValue;
526             mod->BSIM4llpGiven = TRUE;
527             break;
528         case BSIM4_MOD_WUD:
529             mod->BSIM4wud = value->rValue;
530             mod->BSIM4wudGiven = TRUE;
531             break;
532         case BSIM4_MOD_WUD1:
533             mod->BSIM4wud1 = value->rValue;
534             mod->BSIM4wud1Given = TRUE;
535             break;
536         case BSIM4_MOD_WUP:
537             mod->BSIM4wup = value->rValue;
538             mod->BSIM4wupGiven = TRUE;
539             break;
540         case BSIM4_MOD_WLP:
541             mod->BSIM4wlp = value->rValue;
542             mod->BSIM4wlpGiven = TRUE;
543             break;
544         case BSIM4_MOD_PUD:
545             mod->BSIM4pud = value->rValue;
546             mod->BSIM4pudGiven = TRUE;
547             break;
548         case BSIM4_MOD_PUD1:
549             mod->BSIM4pud1 = value->rValue;
550             mod->BSIM4pud1Given = TRUE;
551             break;
552         case BSIM4_MOD_PUP:
553             mod->BSIM4pup = value->rValue;
554             mod->BSIM4pupGiven = TRUE;
555             break;
556         case BSIM4_MOD_PLP:
557             mod->BSIM4plp = value->rValue;
558             mod->BSIM4plpGiven = TRUE;
559             break;
560 
561 
562         case BSIM4_MOD_VOFF:
563             mod->BSIM4voff = value->rValue;
564             mod->BSIM4voffGiven = TRUE;
565             break;
566         case BSIM4_MOD_TVOFF:
567             mod->BSIM4tvoff = value->rValue;
568             mod->BSIM4tvoffGiven = TRUE;
569             break;
570         case BSIM4_MOD_TNFACTOR:           /* v4.7 temp dep of leakage current  */
571             mod->BSIM4tnfactor = value->rValue;
572             mod->BSIM4tnfactorGiven = TRUE;
573             break;
574         case BSIM4_MOD_TETA0:                /* v4.7 temp dep of leakage current  */
575             mod->BSIM4teta0 = value->rValue;
576             mod->BSIM4teta0Given = TRUE;
577             break;
578         case BSIM4_MOD_TVOFFCV:                /* v4.7 temp dep of leakage current  */
579             mod->BSIM4tvoffcv = value->rValue;
580             mod->BSIM4tvoffcvGiven = TRUE;
581             break;
582         case BSIM4_MOD_VOFFL:
583             mod->BSIM4voffl = value->rValue;
584             mod->BSIM4vofflGiven = TRUE;
585             break;
586         case BSIM4_MOD_VOFFCVL:
587             mod->BSIM4voffcvl = value->rValue;
588             mod->BSIM4voffcvlGiven = TRUE;
589             break;
590         case BSIM4_MOD_MINV:
591             mod->BSIM4minv = value->rValue;
592             mod->BSIM4minvGiven = TRUE;
593             break;
594         case BSIM4_MOD_MINVCV:
595             mod->BSIM4minvcv = value->rValue;
596             mod->BSIM4minvcvGiven = TRUE;
597             break;
598         case BSIM4_MOD_FPROUT:
599             mod->BSIM4fprout = value->rValue;
600             mod->BSIM4fproutGiven = TRUE;
601             break;
602         case BSIM4_MOD_PDITS:
603             mod->BSIM4pdits = value->rValue;
604             mod->BSIM4pditsGiven = TRUE;
605             break;
606         case BSIM4_MOD_PDITSD:
607             mod->BSIM4pditsd = value->rValue;
608             mod->BSIM4pditsdGiven = TRUE;
609             break;
610         case BSIM4_MOD_PDITSL:
611             mod->BSIM4pditsl = value->rValue;
612             mod->BSIM4pditslGiven = TRUE;
613             break;
614         case  BSIM4_MOD_DELTA :
615             mod->BSIM4delta = value->rValue;
616             mod->BSIM4deltaGiven = TRUE;
617             break;
618         case BSIM4_MOD_RDSW:
619             mod->BSIM4rdsw = value->rValue;
620             mod->BSIM4rdswGiven = TRUE;
621             break;
622         case BSIM4_MOD_RDSWMIN:
623             mod->BSIM4rdswmin = value->rValue;
624             mod->BSIM4rdswminGiven = TRUE;
625             break;
626         case BSIM4_MOD_RDWMIN:
627             mod->BSIM4rdwmin = value->rValue;
628             mod->BSIM4rdwminGiven = TRUE;
629             break;
630         case BSIM4_MOD_RSWMIN:
631             mod->BSIM4rswmin = value->rValue;
632             mod->BSIM4rswminGiven = TRUE;
633             break;
634         case BSIM4_MOD_RDW:
635             mod->BSIM4rdw = value->rValue;
636             mod->BSIM4rdwGiven = TRUE;
637             break;
638         case BSIM4_MOD_RSW:
639             mod->BSIM4rsw = value->rValue;
640             mod->BSIM4rswGiven = TRUE;
641             break;
642         case BSIM4_MOD_PRWG:
643             mod->BSIM4prwg = value->rValue;
644             mod->BSIM4prwgGiven = TRUE;
645             break;
646         case BSIM4_MOD_PRWB:
647             mod->BSIM4prwb = value->rValue;
648             mod->BSIM4prwbGiven = TRUE;
649             break;
650         case BSIM4_MOD_PRT:
651             mod->BSIM4prt = value->rValue;
652             mod->BSIM4prtGiven = TRUE;
653             break;
654         case BSIM4_MOD_ETA0:
655             mod->BSIM4eta0 = value->rValue;
656             mod->BSIM4eta0Given = TRUE;
657             break;
658         case BSIM4_MOD_ETAB:
659             mod->BSIM4etab = value->rValue;
660             mod->BSIM4etabGiven = TRUE;
661             break;
662         case BSIM4_MOD_PCLM:
663             mod->BSIM4pclm = value->rValue;
664             mod->BSIM4pclmGiven = TRUE;
665             break;
666         case BSIM4_MOD_PDIBL1:
667             mod->BSIM4pdibl1 = value->rValue;
668             mod->BSIM4pdibl1Given = TRUE;
669             break;
670         case BSIM4_MOD_PDIBL2:
671             mod->BSIM4pdibl2 = value->rValue;
672             mod->BSIM4pdibl2Given = TRUE;
673             break;
674         case BSIM4_MOD_PDIBLB:
675             mod->BSIM4pdiblb = value->rValue;
676             mod->BSIM4pdiblbGiven = TRUE;
677             break;
678         case BSIM4_MOD_PSCBE1:
679             mod->BSIM4pscbe1 = value->rValue;
680             mod->BSIM4pscbe1Given = TRUE;
681             break;
682         case BSIM4_MOD_PSCBE2:
683             mod->BSIM4pscbe2 = value->rValue;
684             mod->BSIM4pscbe2Given = TRUE;
685             break;
686         case BSIM4_MOD_PVAG:
687             mod->BSIM4pvag = value->rValue;
688             mod->BSIM4pvagGiven = TRUE;
689             break;
690         case  BSIM4_MOD_WR :
691             mod->BSIM4wr = value->rValue;
692             mod->BSIM4wrGiven = TRUE;
693             break;
694         case  BSIM4_MOD_DWG :
695             mod->BSIM4dwg = value->rValue;
696             mod->BSIM4dwgGiven = TRUE;
697             break;
698         case  BSIM4_MOD_DWB :
699             mod->BSIM4dwb = value->rValue;
700             mod->BSIM4dwbGiven = TRUE;
701             break;
702         case  BSIM4_MOD_B0 :
703             mod->BSIM4b0 = value->rValue;
704             mod->BSIM4b0Given = TRUE;
705             break;
706         case  BSIM4_MOD_B1 :
707             mod->BSIM4b1 = value->rValue;
708             mod->BSIM4b1Given = TRUE;
709             break;
710         case  BSIM4_MOD_ALPHA0 :
711             mod->BSIM4alpha0 = value->rValue;
712             mod->BSIM4alpha0Given = TRUE;
713             break;
714         case  BSIM4_MOD_ALPHA1 :
715             mod->BSIM4alpha1 = value->rValue;
716             mod->BSIM4alpha1Given = TRUE;
717             break;
718         case  BSIM4_MOD_PHIN :
719             mod->BSIM4phin = value->rValue;
720             mod->BSIM4phinGiven = TRUE;
721             break;
722         case  BSIM4_MOD_AGIDL :
723             mod->BSIM4agidl = value->rValue;
724             mod->BSIM4agidlGiven = TRUE;
725             break;
726         case  BSIM4_MOD_BGIDL :
727             mod->BSIM4bgidl = value->rValue;
728             mod->BSIM4bgidlGiven = TRUE;
729             break;
730         case  BSIM4_MOD_CGIDL :
731             mod->BSIM4cgidl = value->rValue;
732             mod->BSIM4cgidlGiven = TRUE;
733             break;
734         case  BSIM4_MOD_EGIDL :
735             mod->BSIM4egidl = value->rValue;
736             mod->BSIM4egidlGiven = TRUE;
737             break;
738           case  BSIM4_MOD_FGIDL :                        /* v4.7 New GIDL/GISL */
739             mod->BSIM4fgidl = value->rValue;
740             mod->BSIM4fgidlGiven = TRUE;
741             break;
742         case  BSIM4_MOD_KGIDL :                        /* v4.7 New GIDL/GISL */
743             mod->BSIM4kgidl = value->rValue;
744             mod->BSIM4kgidlGiven = TRUE;
745             break;
746         case  BSIM4_MOD_RGIDL :                        /* v4.7 New GIDL/GISL */
747             mod->BSIM4rgidl = value->rValue;
748             mod->BSIM4rgidlGiven = TRUE;
749             break;
750         case  BSIM4_MOD_AGISL :
751             mod->BSIM4agisl = value->rValue;
752             mod->BSIM4agislGiven = TRUE;
753             break;
754         case  BSIM4_MOD_BGISL :
755             mod->BSIM4bgisl = value->rValue;
756             mod->BSIM4bgislGiven = TRUE;
757             break;
758         case  BSIM4_MOD_CGISL :
759             mod->BSIM4cgisl = value->rValue;
760             mod->BSIM4cgislGiven = TRUE;
761             break;
762         case  BSIM4_MOD_EGISL :
763             mod->BSIM4egisl = value->rValue;
764             mod->BSIM4egislGiven = TRUE;
765             break;
766         case  BSIM4_MOD_FGISL :                        /* v4.7 New GIDL/GISL */
767             mod->BSIM4fgisl = value->rValue;
768             mod->BSIM4fgislGiven = TRUE;
769             break;
770         case  BSIM4_MOD_KGISL :                        /* v4.7 New GIDL/GISL */
771             mod->BSIM4kgisl = value->rValue;
772             mod->BSIM4kgislGiven = TRUE;
773             break;
774         case  BSIM4_MOD_RGISL :                        /* v4.7 New GIDL/GISL */
775             mod->BSIM4rgisl = value->rValue;
776             mod->BSIM4rgislGiven = TRUE;
777             break;
778         case  BSIM4_MOD_AIGC :
779             mod->BSIM4aigc = value->rValue;
780             mod->BSIM4aigcGiven = TRUE;
781             break;
782         case  BSIM4_MOD_BIGC :
783             mod->BSIM4bigc = value->rValue;
784             mod->BSIM4bigcGiven = TRUE;
785             break;
786         case  BSIM4_MOD_CIGC :
787             mod->BSIM4cigc = value->rValue;
788             mod->BSIM4cigcGiven = TRUE;
789             break;
790         case  BSIM4_MOD_AIGSD :
791             mod->BSIM4aigsd = value->rValue;
792             mod->BSIM4aigsdGiven = TRUE;
793             break;
794         case  BSIM4_MOD_BIGSD :
795             mod->BSIM4bigsd = value->rValue;
796             mod->BSIM4bigsdGiven = TRUE;
797             break;
798         case  BSIM4_MOD_CIGSD :
799             mod->BSIM4cigsd = value->rValue;
800             mod->BSIM4cigsdGiven = TRUE;
801             break;
802         case  BSIM4_MOD_AIGS :
803             mod->BSIM4aigs = value->rValue;
804             mod->BSIM4aigsGiven = TRUE;
805             break;
806         case  BSIM4_MOD_BIGS :
807             mod->BSIM4bigs = value->rValue;
808             mod->BSIM4bigsGiven = TRUE;
809             break;
810         case  BSIM4_MOD_CIGS :
811             mod->BSIM4cigs = value->rValue;
812             mod->BSIM4cigsGiven = TRUE;
813             break;
814         case  BSIM4_MOD_AIGD :
815             mod->BSIM4aigd = value->rValue;
816             mod->BSIM4aigdGiven = TRUE;
817             break;
818         case  BSIM4_MOD_BIGD :
819             mod->BSIM4bigd = value->rValue;
820             mod->BSIM4bigdGiven = TRUE;
821             break;
822         case  BSIM4_MOD_CIGD :
823             mod->BSIM4cigd = value->rValue;
824             mod->BSIM4cigdGiven = TRUE;
825             break;
826         case  BSIM4_MOD_AIGBACC :
827             mod->BSIM4aigbacc = value->rValue;
828             mod->BSIM4aigbaccGiven = TRUE;
829             break;
830         case  BSIM4_MOD_BIGBACC :
831             mod->BSIM4bigbacc = value->rValue;
832             mod->BSIM4bigbaccGiven = TRUE;
833             break;
834         case  BSIM4_MOD_CIGBACC :
835             mod->BSIM4cigbacc = value->rValue;
836             mod->BSIM4cigbaccGiven = TRUE;
837             break;
838         case  BSIM4_MOD_AIGBINV :
839             mod->BSIM4aigbinv = value->rValue;
840             mod->BSIM4aigbinvGiven = TRUE;
841             break;
842         case  BSIM4_MOD_BIGBINV :
843             mod->BSIM4bigbinv = value->rValue;
844             mod->BSIM4bigbinvGiven = TRUE;
845             break;
846         case  BSIM4_MOD_CIGBINV :
847             mod->BSIM4cigbinv = value->rValue;
848             mod->BSIM4cigbinvGiven = TRUE;
849             break;
850         case  BSIM4_MOD_NIGC :
851             mod->BSIM4nigc = value->rValue;
852             mod->BSIM4nigcGiven = TRUE;
853             break;
854         case  BSIM4_MOD_NIGBINV :
855             mod->BSIM4nigbinv = value->rValue;
856             mod->BSIM4nigbinvGiven = TRUE;
857             break;
858         case  BSIM4_MOD_NIGBACC :
859             mod->BSIM4nigbacc = value->rValue;
860             mod->BSIM4nigbaccGiven = TRUE;
861             break;
862         case  BSIM4_MOD_NTOX :
863             mod->BSIM4ntox = value->rValue;
864             mod->BSIM4ntoxGiven = TRUE;
865             break;
866         case  BSIM4_MOD_EIGBINV :
867             mod->BSIM4eigbinv = value->rValue;
868             mod->BSIM4eigbinvGiven = TRUE;
869             break;
870         case  BSIM4_MOD_PIGCD :
871             mod->BSIM4pigcd = value->rValue;
872             mod->BSIM4pigcdGiven = TRUE;
873             break;
874         case  BSIM4_MOD_POXEDGE :
875             mod->BSIM4poxedge = value->rValue;
876             mod->BSIM4poxedgeGiven = TRUE;
877             break;
878         case  BSIM4_MOD_XRCRG1 :
879             mod->BSIM4xrcrg1 = value->rValue;
880             mod->BSIM4xrcrg1Given = TRUE;
881             break;
882         case  BSIM4_MOD_XRCRG2 :
883             mod->BSIM4xrcrg2 = value->rValue;
884             mod->BSIM4xrcrg2Given = TRUE;
885             break;
886         case  BSIM4_MOD_LAMBDA :
887             mod->BSIM4lambda = value->rValue;
888             mod->BSIM4lambdaGiven = TRUE;
889             break;
890         case  BSIM4_MOD_VTL :
891             mod->BSIM4vtl = value->rValue;
892             mod->BSIM4vtlGiven = TRUE;
893             break;
894         case  BSIM4_MOD_XN:
895             mod->BSIM4xn = value->rValue;
896             mod->BSIM4xnGiven = TRUE;
897             break;
898         case  BSIM4_MOD_LC:
899             mod->BSIM4lc = value->rValue;
900             mod->BSIM4lcGiven = TRUE;
901             break;
902         case  BSIM4_MOD_TNOIA :
903             mod->BSIM4tnoia = value->rValue;
904             mod->BSIM4tnoiaGiven = TRUE;
905             break;
906         case  BSIM4_MOD_TNOIB :
907             mod->BSIM4tnoib = value->rValue;
908             mod->BSIM4tnoibGiven = TRUE;
909             break;
910         case  BSIM4_MOD_TNOIC :
911             mod->BSIM4tnoic = value->rValue;
912             mod->BSIM4tnoicGiven = TRUE;
913             break;
914         case  BSIM4_MOD_RNOIA :
915             mod->BSIM4rnoia = value->rValue;
916             mod->BSIM4rnoiaGiven = TRUE;
917             break;
918         case  BSIM4_MOD_RNOIB :
919             mod->BSIM4rnoib = value->rValue;
920             mod->BSIM4rnoibGiven = TRUE;
921             break;
922         case  BSIM4_MOD_RNOIC :
923             mod->BSIM4rnoic = value->rValue;
924             mod->BSIM4rnoicGiven = TRUE;
925             break;
926         case  BSIM4_MOD_NTNOI :
927             mod->BSIM4ntnoi = value->rValue;
928             mod->BSIM4ntnoiGiven = TRUE;
929             break;
930         case  BSIM4_MOD_VFBSDOFF:
931             mod->BSIM4vfbsdoff = value->rValue;
932             mod->BSIM4vfbsdoffGiven = TRUE;
933             break;
934         case  BSIM4_MOD_TVFBSDOFF:
935             mod->BSIM4tvfbsdoff = value->rValue;
936             mod->BSIM4tvfbsdoffGiven = TRUE;
937             break;
938         case  BSIM4_MOD_LINTNOI:
939             mod->BSIM4lintnoi = value->rValue;
940             mod->BSIM4lintnoiGiven = TRUE;
941             break;
942 
943         /* stress effect */
944         case  BSIM4_MOD_SAREF :
945             mod->BSIM4saref = value->rValue;
946             mod->BSIM4sarefGiven = TRUE;
947             break;
948         case  BSIM4_MOD_SBREF :
949             mod->BSIM4sbref = value->rValue;
950             mod->BSIM4sbrefGiven = TRUE;
951             break;
952         case  BSIM4_MOD_WLOD :
953             mod->BSIM4wlod = value->rValue;
954             mod->BSIM4wlodGiven = TRUE;
955             break;
956         case  BSIM4_MOD_KU0 :
957             mod->BSIM4ku0 = value->rValue;
958             mod->BSIM4ku0Given = TRUE;
959             break;
960         case  BSIM4_MOD_KVSAT :
961             mod->BSIM4kvsat = value->rValue;
962             mod->BSIM4kvsatGiven = TRUE;
963             break;
964         case  BSIM4_MOD_KVTH0 :
965             mod->BSIM4kvth0 = value->rValue;
966             mod->BSIM4kvth0Given = TRUE;
967             break;
968         case  BSIM4_MOD_TKU0 :
969             mod->BSIM4tku0 = value->rValue;
970             mod->BSIM4tku0Given = TRUE;
971             break;
972         case  BSIM4_MOD_LLODKU0 :
973             mod->BSIM4llodku0 = value->rValue;
974             mod->BSIM4llodku0Given = TRUE;
975             break;
976         case  BSIM4_MOD_WLODKU0 :
977             mod->BSIM4wlodku0 = value->rValue;
978             mod->BSIM4wlodku0Given = TRUE;
979             break;
980         case  BSIM4_MOD_LLODVTH :
981             mod->BSIM4llodvth = value->rValue;
982             mod->BSIM4llodvthGiven = TRUE;
983             break;
984         case  BSIM4_MOD_WLODVTH :
985             mod->BSIM4wlodvth = value->rValue;
986             mod->BSIM4wlodvthGiven = TRUE;
987             break;
988         case  BSIM4_MOD_LKU0 :
989             mod->BSIM4lku0 = value->rValue;
990             mod->BSIM4lku0Given = TRUE;
991             break;
992         case  BSIM4_MOD_WKU0 :
993             mod->BSIM4wku0 = value->rValue;
994             mod->BSIM4wku0Given = TRUE;
995             break;
996         case  BSIM4_MOD_PKU0 :
997             mod->BSIM4pku0 = value->rValue;
998             mod->BSIM4pku0Given = TRUE;
999             break;
1000         case  BSIM4_MOD_LKVTH0 :
1001             mod->BSIM4lkvth0 = value->rValue;
1002             mod->BSIM4lkvth0Given = TRUE;
1003             break;
1004         case  BSIM4_MOD_WKVTH0 :
1005             mod->BSIM4wkvth0 = value->rValue;
1006             mod->BSIM4wkvth0Given = TRUE;
1007             break;
1008         case  BSIM4_MOD_PKVTH0 :
1009             mod->BSIM4pkvth0 = value->rValue;
1010             mod->BSIM4pkvth0Given = TRUE;
1011             break;
1012         case  BSIM4_MOD_STK2 :
1013             mod->BSIM4stk2 = value->rValue;
1014             mod->BSIM4stk2Given = TRUE;
1015             break;
1016         case  BSIM4_MOD_LODK2 :
1017             mod->BSIM4lodk2 = value->rValue;
1018             mod->BSIM4lodk2Given = TRUE;
1019             break;
1020         case  BSIM4_MOD_STETA0 :
1021             mod->BSIM4steta0 = value->rValue;
1022             mod->BSIM4steta0Given = TRUE;
1023             break;
1024         case  BSIM4_MOD_LODETA0 :
1025             mod->BSIM4lodeta0 = value->rValue;
1026             mod->BSIM4lodeta0Given = TRUE;
1027             break;
1028 
1029         case  BSIM4_MOD_WEB :
1030             mod->BSIM4web = value->rValue;
1031             mod->BSIM4webGiven = TRUE;
1032             break;
1033         case BSIM4_MOD_WEC :
1034             mod->BSIM4wec = value->rValue;
1035             mod->BSIM4wecGiven = TRUE;
1036             break;
1037         case  BSIM4_MOD_KVTH0WE :
1038             mod->BSIM4kvth0we = value->rValue;
1039             mod->BSIM4kvth0weGiven = TRUE;
1040             break;
1041         case  BSIM4_MOD_K2WE :
1042             mod->BSIM4k2we = value->rValue;
1043             mod->BSIM4k2weGiven = TRUE;
1044             break;
1045         case  BSIM4_MOD_KU0WE :
1046             mod->BSIM4ku0we = value->rValue;
1047             mod->BSIM4ku0weGiven = TRUE;
1048             break;
1049         case  BSIM4_MOD_SCREF :
1050             mod->BSIM4scref = value->rValue;
1051             mod->BSIM4screfGiven = TRUE;
1052             break;
1053         case  BSIM4_MOD_WPEMOD :
1054             mod->BSIM4wpemod = value->rValue;
1055             mod->BSIM4wpemodGiven = TRUE;
1056             break;
1057         case  BSIM4_MOD_LKVTH0WE :
1058             mod->BSIM4lkvth0we = value->rValue;
1059             mod->BSIM4lkvth0weGiven = TRUE;
1060             break;
1061         case  BSIM4_MOD_LK2WE :
1062             mod->BSIM4lk2we = value->rValue;
1063             mod->BSIM4lk2weGiven = TRUE;
1064             break;
1065         case  BSIM4_MOD_LKU0WE :
1066             mod->BSIM4lku0we = value->rValue;
1067             mod->BSIM4lku0weGiven = TRUE;
1068             break;
1069         case  BSIM4_MOD_WKVTH0WE :
1070             mod->BSIM4wkvth0we = value->rValue;
1071             mod->BSIM4wkvth0weGiven = TRUE;
1072             break;
1073         case  BSIM4_MOD_WK2WE :
1074             mod->BSIM4wk2we = value->rValue;
1075             mod->BSIM4wk2weGiven = TRUE;
1076             break;
1077         case  BSIM4_MOD_WKU0WE :
1078             mod->BSIM4wku0we = value->rValue;
1079             mod->BSIM4wku0weGiven = TRUE;
1080             break;
1081         case  BSIM4_MOD_PKVTH0WE :
1082             mod->BSIM4pkvth0we = value->rValue;
1083             mod->BSIM4pkvth0weGiven = TRUE;
1084             break;
1085         case  BSIM4_MOD_PK2WE :
1086             mod->BSIM4pk2we = value->rValue;
1087             mod->BSIM4pk2weGiven = TRUE;
1088             break;
1089         case  BSIM4_MOD_PKU0WE :
1090             mod->BSIM4pku0we = value->rValue;
1091             mod->BSIM4pku0weGiven = TRUE;
1092             break;
1093 
1094         case  BSIM4_MOD_BETA0 :
1095             mod->BSIM4beta0 = value->rValue;
1096             mod->BSIM4beta0Given = TRUE;
1097             break;
1098         case  BSIM4_MOD_IJTHDFWD :
1099             mod->BSIM4ijthdfwd = value->rValue;
1100             mod->BSIM4ijthdfwdGiven = TRUE;
1101             break;
1102         case  BSIM4_MOD_IJTHSFWD :
1103             mod->BSIM4ijthsfwd = value->rValue;
1104             mod->BSIM4ijthsfwdGiven = TRUE;
1105             break;
1106         case  BSIM4_MOD_IJTHDREV :
1107             mod->BSIM4ijthdrev = value->rValue;
1108             mod->BSIM4ijthdrevGiven = TRUE;
1109             break;
1110         case  BSIM4_MOD_IJTHSREV :
1111             mod->BSIM4ijthsrev = value->rValue;
1112             mod->BSIM4ijthsrevGiven = TRUE;
1113             break;
1114         case  BSIM4_MOD_XJBVD :
1115             mod->BSIM4xjbvd = value->rValue;
1116             mod->BSIM4xjbvdGiven = TRUE;
1117             break;
1118         case  BSIM4_MOD_XJBVS :
1119             mod->BSIM4xjbvs = value->rValue;
1120             mod->BSIM4xjbvsGiven = TRUE;
1121             break;
1122         case  BSIM4_MOD_BVD :
1123             mod->BSIM4bvd = value->rValue;
1124             mod->BSIM4bvdGiven = TRUE;
1125             break;
1126         case  BSIM4_MOD_BVS :
1127             mod->BSIM4bvs = value->rValue;
1128             mod->BSIM4bvsGiven = TRUE;
1129             break;
1130 
1131         /* reverse diode */
1132         case  BSIM4_MOD_JTSS :
1133             mod->BSIM4jtss = value->rValue;
1134             mod->BSIM4jtssGiven = TRUE;
1135             break;
1136         case  BSIM4_MOD_JTSD :
1137             mod->BSIM4jtsd = value->rValue;
1138             mod->BSIM4jtsdGiven = TRUE;
1139             break;
1140         case  BSIM4_MOD_JTSSWS :
1141             mod->BSIM4jtssws = value->rValue;
1142             mod->BSIM4jtsswsGiven = TRUE;
1143             break;
1144         case  BSIM4_MOD_JTSSWD :
1145             mod->BSIM4jtsswd = value->rValue;
1146             mod->BSIM4jtsswdGiven = TRUE;
1147             break;
1148         case  BSIM4_MOD_JTSSWGS :
1149             mod->BSIM4jtsswgs = value->rValue;
1150             mod->BSIM4jtsswgsGiven = TRUE;
1151             break;
1152         case  BSIM4_MOD_JTSSWGD :
1153             mod->BSIM4jtsswgd = value->rValue;
1154             mod->BSIM4jtsswgdGiven = TRUE;
1155             break;
1156         case BSIM4_MOD_JTWEFF :
1157             mod->BSIM4jtweff = value->rValue;
1158             mod->BSIM4jtweffGiven = TRUE;
1159             break;
1160         case  BSIM4_MOD_NJTS :
1161             mod->BSIM4njts = value->rValue;
1162             mod->BSIM4njtsGiven = TRUE;
1163             break;
1164         case  BSIM4_MOD_NJTSSW :
1165             mod->BSIM4njtssw = value->rValue;
1166             mod->BSIM4njtsswGiven = TRUE;
1167             break;
1168         case  BSIM4_MOD_NJTSSWG :
1169             mod->BSIM4njtsswg = value->rValue;
1170             mod->BSIM4njtsswgGiven = TRUE;
1171             break;
1172         case  BSIM4_MOD_NJTSD :
1173             mod->BSIM4njtsd = value->rValue;
1174             mod->BSIM4njtsdGiven = TRUE;
1175             break;
1176         case  BSIM4_MOD_NJTSSWD :
1177             mod->BSIM4njtsswd = value->rValue;
1178             mod->BSIM4njtsswdGiven = TRUE;
1179             break;
1180         case  BSIM4_MOD_NJTSSWGD :
1181             mod->BSIM4njtsswgd = value->rValue;
1182             mod->BSIM4njtsswgdGiven = TRUE;
1183             break;
1184         case  BSIM4_MOD_XTSS :
1185             mod->BSIM4xtss = value->rValue;
1186             mod->BSIM4xtssGiven = TRUE;
1187             break;
1188         case  BSIM4_MOD_XTSD :
1189             mod->BSIM4xtsd = value->rValue;
1190             mod->BSIM4xtsdGiven = TRUE;
1191             break;
1192         case  BSIM4_MOD_XTSSWS :
1193             mod->BSIM4xtssws = value->rValue;
1194             mod->BSIM4xtsswsGiven = TRUE;
1195             break;
1196         case  BSIM4_MOD_XTSSWD :
1197             mod->BSIM4xtsswd = value->rValue;
1198             mod->BSIM4xtsswdGiven = TRUE;
1199             break;
1200         case  BSIM4_MOD_XTSSWGS :
1201             mod->BSIM4xtsswgs = value->rValue;
1202             mod->BSIM4xtsswgsGiven = TRUE;
1203             break;
1204         case  BSIM4_MOD_XTSSWGD :
1205             mod->BSIM4xtsswgd = value->rValue;
1206             mod->BSIM4xtsswgdGiven = TRUE;
1207             break;
1208         case  BSIM4_MOD_TNJTS :
1209             mod->BSIM4tnjts = value->rValue;
1210             mod->BSIM4tnjtsGiven = TRUE;
1211             break;
1212         case  BSIM4_MOD_TNJTSSW :
1213             mod->BSIM4tnjtssw = value->rValue;
1214             mod->BSIM4tnjtsswGiven = TRUE;
1215             break;
1216         case  BSIM4_MOD_TNJTSSWG :
1217             mod->BSIM4tnjtsswg = value->rValue;
1218             mod->BSIM4tnjtsswgGiven = TRUE;
1219             break;
1220         case  BSIM4_MOD_TNJTSD :
1221             mod->BSIM4tnjtsd = value->rValue;
1222             mod->BSIM4tnjtsdGiven = TRUE;
1223             break;
1224         case  BSIM4_MOD_TNJTSSWD :
1225             mod->BSIM4tnjtsswd = value->rValue;
1226             mod->BSIM4tnjtsswdGiven = TRUE;
1227             break;
1228         case  BSIM4_MOD_TNJTSSWGD :
1229             mod->BSIM4tnjtsswgd = value->rValue;
1230             mod->BSIM4tnjtsswgdGiven = TRUE;
1231             break;
1232         case  BSIM4_MOD_VTSS :
1233             mod->BSIM4vtss = value->rValue;
1234             mod->BSIM4vtssGiven = TRUE;
1235             break;
1236         case  BSIM4_MOD_VTSD :
1237             mod->BSIM4vtsd = value->rValue;
1238             mod->BSIM4vtsdGiven = TRUE;
1239             break;
1240         case  BSIM4_MOD_VTSSWS :
1241             mod->BSIM4vtssws = value->rValue;
1242             mod->BSIM4vtsswsGiven = TRUE;
1243             break;
1244         case  BSIM4_MOD_VTSSWD :
1245             mod->BSIM4vtsswd = value->rValue;
1246             mod->BSIM4vtsswdGiven = TRUE;
1247             break;
1248         case  BSIM4_MOD_VTSSWGS :
1249             mod->BSIM4vtsswgs = value->rValue;
1250             mod->BSIM4vtsswgsGiven = TRUE;
1251             break;
1252         case  BSIM4_MOD_VTSSWGD :
1253             mod->BSIM4vtsswgd = value->rValue;
1254             mod->BSIM4vtsswgdGiven = TRUE;
1255             break;
1256 
1257         case  BSIM4_MOD_VFB :
1258             mod->BSIM4vfb = value->rValue;
1259             mod->BSIM4vfbGiven = TRUE;
1260             break;
1261 
1262         case  BSIM4_MOD_GBMIN :
1263             mod->BSIM4gbmin = value->rValue;
1264             mod->BSIM4gbminGiven = TRUE;
1265             break;
1266         case  BSIM4_MOD_RBDB :
1267             mod->BSIM4rbdb = value->rValue;
1268             mod->BSIM4rbdbGiven = TRUE;
1269             break;
1270         case  BSIM4_MOD_RBPB :
1271             mod->BSIM4rbpb = value->rValue;
1272             mod->BSIM4rbpbGiven = TRUE;
1273             break;
1274         case  BSIM4_MOD_RBSB :
1275             mod->BSIM4rbsb = value->rValue;
1276             mod->BSIM4rbsbGiven = TRUE;
1277             break;
1278         case  BSIM4_MOD_RBPS :
1279             mod->BSIM4rbps = value->rValue;
1280             mod->BSIM4rbpsGiven = TRUE;
1281             break;
1282         case  BSIM4_MOD_RBPD :
1283             mod->BSIM4rbpd = value->rValue;
1284             mod->BSIM4rbpdGiven = TRUE;
1285             break;
1286 
1287         case  BSIM4_MOD_RBPS0 :
1288             mod->BSIM4rbps0 = value->rValue;
1289             mod->BSIM4rbps0Given = TRUE;
1290             break;
1291         case  BSIM4_MOD_RBPSL :
1292             mod->BSIM4rbpsl = value->rValue;
1293             mod->BSIM4rbpslGiven = TRUE;
1294             break;
1295         case  BSIM4_MOD_RBPSW :
1296             mod->BSIM4rbpsw = value->rValue;
1297             mod->BSIM4rbpswGiven = TRUE;
1298             break;
1299         case  BSIM4_MOD_RBPSNF :
1300             mod->BSIM4rbpsnf = value->rValue;
1301             mod->BSIM4rbpsnfGiven = TRUE;
1302             break;
1303 
1304         case  BSIM4_MOD_RBPD0 :
1305             mod->BSIM4rbpd0 = value->rValue;
1306             mod->BSIM4rbpd0Given = TRUE;
1307             break;
1308         case  BSIM4_MOD_RBPDL :
1309             mod->BSIM4rbpdl = value->rValue;
1310             mod->BSIM4rbpdlGiven = TRUE;
1311             break;
1312         case  BSIM4_MOD_RBPDW :
1313             mod->BSIM4rbpdw = value->rValue;
1314             mod->BSIM4rbpdwGiven = TRUE;
1315             break;
1316         case  BSIM4_MOD_RBPDNF :
1317             mod->BSIM4rbpdnf = value->rValue;
1318             mod->BSIM4rbpdnfGiven = TRUE;
1319             break;
1320 
1321         case  BSIM4_MOD_RBPBX0 :
1322             mod->BSIM4rbpbx0 = value->rValue;
1323             mod->BSIM4rbpbx0Given = TRUE;
1324             break;
1325         case  BSIM4_MOD_RBPBXL :
1326             mod->BSIM4rbpbxl = value->rValue;
1327             mod->BSIM4rbpbxlGiven = TRUE;
1328             break;
1329         case  BSIM4_MOD_RBPBXW :
1330             mod->BSIM4rbpbxw = value->rValue;
1331             mod->BSIM4rbpbxwGiven = TRUE;
1332             break;
1333         case  BSIM4_MOD_RBPBXNF :
1334             mod->BSIM4rbpbxnf = value->rValue;
1335             mod->BSIM4rbpbxnfGiven = TRUE;
1336             break;
1337         case  BSIM4_MOD_RBPBY0 :
1338             mod->BSIM4rbpby0 = value->rValue;
1339             mod->BSIM4rbpby0Given = TRUE;
1340             break;
1341         case  BSIM4_MOD_RBPBYL :
1342             mod->BSIM4rbpbyl = value->rValue;
1343             mod->BSIM4rbpbylGiven = TRUE;
1344             break;
1345         case  BSIM4_MOD_RBPBYW :
1346             mod->BSIM4rbpbyw = value->rValue;
1347             mod->BSIM4rbpbywGiven = TRUE;
1348             break;
1349         case  BSIM4_MOD_RBPBYNF :
1350             mod->BSIM4rbpbynf = value->rValue;
1351             mod->BSIM4rbpbynfGiven = TRUE;
1352             break;
1353        case  BSIM4_MOD_RBSBX0 :
1354             mod->BSIM4rbsbx0 = value->rValue;
1355             mod->BSIM4rbsbx0Given = TRUE;
1356             break;
1357        case  BSIM4_MOD_RBSBY0 :
1358             mod->BSIM4rbsby0 = value->rValue;
1359             mod->BSIM4rbsby0Given = TRUE;
1360             break;
1361        case  BSIM4_MOD_RBDBX0 :
1362             mod->BSIM4rbdbx0 = value->rValue;
1363             mod->BSIM4rbdbx0Given = TRUE;
1364             break;
1365        case  BSIM4_MOD_RBDBY0 :
1366             mod->BSIM4rbdby0 = value->rValue;
1367             mod->BSIM4rbdby0Given = TRUE;
1368             break;
1369 
1370 
1371        case  BSIM4_MOD_RBSDBXL :
1372             mod->BSIM4rbsdbxl = value->rValue;
1373             mod->BSIM4rbsdbxlGiven = TRUE;
1374             break;
1375        case  BSIM4_MOD_RBSDBXW :
1376             mod->BSIM4rbsdbxw = value->rValue;
1377             mod->BSIM4rbsdbxwGiven = TRUE;
1378             break;
1379        case  BSIM4_MOD_RBSDBXNF :
1380             mod->BSIM4rbsdbxnf = value->rValue;
1381             mod->BSIM4rbsdbxnfGiven = TRUE;
1382             break;
1383        case  BSIM4_MOD_RBSDBYL :
1384             mod->BSIM4rbsdbyl = value->rValue;
1385             mod->BSIM4rbsdbylGiven = TRUE;
1386             break;
1387        case  BSIM4_MOD_RBSDBYW :
1388             mod->BSIM4rbsdbyw = value->rValue;
1389             mod->BSIM4rbsdbywGiven = TRUE;
1390             break;
1391        case  BSIM4_MOD_RBSDBYNF :
1392             mod->BSIM4rbsdbynf = value->rValue;
1393             mod->BSIM4rbsdbynfGiven = TRUE;
1394             break;
1395 
1396         case  BSIM4_MOD_CGSL :
1397             mod->BSIM4cgsl = value->rValue;
1398             mod->BSIM4cgslGiven = TRUE;
1399             break;
1400         case  BSIM4_MOD_CGDL :
1401             mod->BSIM4cgdl = value->rValue;
1402             mod->BSIM4cgdlGiven = TRUE;
1403             break;
1404         case  BSIM4_MOD_CKAPPAS :
1405             mod->BSIM4ckappas = value->rValue;
1406             mod->BSIM4ckappasGiven = TRUE;
1407             break;
1408         case  BSIM4_MOD_CKAPPAD :
1409             mod->BSIM4ckappad = value->rValue;
1410             mod->BSIM4ckappadGiven = TRUE;
1411             break;
1412         case  BSIM4_MOD_CF :
1413             mod->BSIM4cf = value->rValue;
1414             mod->BSIM4cfGiven = TRUE;
1415             break;
1416         case  BSIM4_MOD_CLC :
1417             mod->BSIM4clc = value->rValue;
1418             mod->BSIM4clcGiven = TRUE;
1419             break;
1420         case  BSIM4_MOD_CLE :
1421             mod->BSIM4cle = value->rValue;
1422             mod->BSIM4cleGiven = TRUE;
1423             break;
1424         case  BSIM4_MOD_DWC :
1425             mod->BSIM4dwc = value->rValue;
1426             mod->BSIM4dwcGiven = TRUE;
1427             break;
1428         case  BSIM4_MOD_DLC :
1429             mod->BSIM4dlc = value->rValue;
1430             mod->BSIM4dlcGiven = TRUE;
1431             break;
1432         case  BSIM4_MOD_XW :
1433             mod->BSIM4xw = value->rValue;
1434             mod->BSIM4xwGiven = TRUE;
1435             break;
1436         case  BSIM4_MOD_XL :
1437             mod->BSIM4xl = value->rValue;
1438             mod->BSIM4xlGiven = TRUE;
1439             break;
1440         case  BSIM4_MOD_DLCIG :
1441             mod->BSIM4dlcig = value->rValue;
1442             mod->BSIM4dlcigGiven = TRUE;
1443             break;
1444         case  BSIM4_MOD_DLCIGD :
1445             mod->BSIM4dlcigd = value->rValue;
1446             mod->BSIM4dlcigdGiven = TRUE;
1447             break;
1448         case  BSIM4_MOD_DWJ :
1449             mod->BSIM4dwj = value->rValue;
1450             mod->BSIM4dwjGiven = TRUE;
1451             break;
1452         case  BSIM4_MOD_VFBCV :
1453             mod->BSIM4vfbcv = value->rValue;
1454             mod->BSIM4vfbcvGiven = TRUE;
1455             break;
1456         case  BSIM4_MOD_ACDE :
1457             mod->BSIM4acde = value->rValue;
1458             mod->BSIM4acdeGiven = TRUE;
1459             break;
1460         case  BSIM4_MOD_MOIN :
1461             mod->BSIM4moin = value->rValue;
1462             mod->BSIM4moinGiven = TRUE;
1463             break;
1464         case  BSIM4_MOD_NOFF :
1465             mod->BSIM4noff = value->rValue;
1466             mod->BSIM4noffGiven = TRUE;
1467             break;
1468         case  BSIM4_MOD_VOFFCV :
1469             mod->BSIM4voffcv = value->rValue;
1470             mod->BSIM4voffcvGiven = TRUE;
1471             break;
1472         case  BSIM4_MOD_DMCG :
1473             mod->BSIM4dmcg = value->rValue;
1474             mod->BSIM4dmcgGiven = TRUE;
1475             break;
1476         case  BSIM4_MOD_DMCI :
1477             mod->BSIM4dmci = value->rValue;
1478             mod->BSIM4dmciGiven = TRUE;
1479             break;
1480         case  BSIM4_MOD_DMDG :
1481             mod->BSIM4dmdg = value->rValue;
1482             mod->BSIM4dmdgGiven = TRUE;
1483             break;
1484         case  BSIM4_MOD_DMCGT :
1485             mod->BSIM4dmcgt = value->rValue;
1486             mod->BSIM4dmcgtGiven = TRUE;
1487             break;
1488         case  BSIM4_MOD_XGW :
1489             mod->BSIM4xgw = value->rValue;
1490             mod->BSIM4xgwGiven = TRUE;
1491             break;
1492         case  BSIM4_MOD_XGL :
1493             mod->BSIM4xgl = value->rValue;
1494             mod->BSIM4xglGiven = TRUE;
1495             break;
1496         case  BSIM4_MOD_RSHG :
1497             mod->BSIM4rshg = value->rValue;
1498             mod->BSIM4rshgGiven = TRUE;
1499             break;
1500         case  BSIM4_MOD_NGCON :
1501             mod->BSIM4ngcon = value->rValue;
1502             mod->BSIM4ngconGiven = TRUE;
1503             break;
1504         case  BSIM4_MOD_TCJ :
1505             mod->BSIM4tcj = value->rValue;
1506             mod->BSIM4tcjGiven = TRUE;
1507             break;
1508         case  BSIM4_MOD_TPB :
1509             mod->BSIM4tpb = value->rValue;
1510             mod->BSIM4tpbGiven = TRUE;
1511             break;
1512         case  BSIM4_MOD_TCJSW :
1513             mod->BSIM4tcjsw = value->rValue;
1514             mod->BSIM4tcjswGiven = TRUE;
1515             break;
1516         case  BSIM4_MOD_TPBSW :
1517             mod->BSIM4tpbsw = value->rValue;
1518             mod->BSIM4tpbswGiven = TRUE;
1519             break;
1520         case  BSIM4_MOD_TCJSWG :
1521             mod->BSIM4tcjswg = value->rValue;
1522             mod->BSIM4tcjswgGiven = TRUE;
1523             break;
1524         case  BSIM4_MOD_TPBSWG :
1525             mod->BSIM4tpbswg = value->rValue;
1526             mod->BSIM4tpbswgGiven = TRUE;
1527             break;
1528 
1529         /* Length dependence */
1530         case  BSIM4_MOD_LCDSC :
1531             mod->BSIM4lcdsc = value->rValue;
1532             mod->BSIM4lcdscGiven = TRUE;
1533             break;
1534 
1535 
1536         case  BSIM4_MOD_LCDSCB :
1537             mod->BSIM4lcdscb = value->rValue;
1538             mod->BSIM4lcdscbGiven = TRUE;
1539             break;
1540         case  BSIM4_MOD_LCDSCD :
1541             mod->BSIM4lcdscd = value->rValue;
1542             mod->BSIM4lcdscdGiven = TRUE;
1543             break;
1544         case  BSIM4_MOD_LCIT :
1545             mod->BSIM4lcit = value->rValue;
1546             mod->BSIM4lcitGiven = TRUE;
1547             break;
1548         case  BSIM4_MOD_LNFACTOR :
1549             mod->BSIM4lnfactor = value->rValue;
1550             mod->BSIM4lnfactorGiven = TRUE;
1551             break;
1552         case BSIM4_MOD_LXJ:
1553             mod->BSIM4lxj = value->rValue;
1554             mod->BSIM4lxjGiven = TRUE;
1555             break;
1556         case BSIM4_MOD_LVSAT:
1557             mod->BSIM4lvsat = value->rValue;
1558             mod->BSIM4lvsatGiven = TRUE;
1559             break;
1560 
1561 
1562         case BSIM4_MOD_LA0:
1563             mod->BSIM4la0 = value->rValue;
1564             mod->BSIM4la0Given = TRUE;
1565             break;
1566         case BSIM4_MOD_LAGS:
1567             mod->BSIM4lags = value->rValue;
1568             mod->BSIM4lagsGiven = TRUE;
1569             break;
1570         case BSIM4_MOD_LA1:
1571             mod->BSIM4la1 = value->rValue;
1572             mod->BSIM4la1Given = TRUE;
1573             break;
1574         case BSIM4_MOD_LA2:
1575             mod->BSIM4la2 = value->rValue;
1576             mod->BSIM4la2Given = TRUE;
1577             break;
1578         case BSIM4_MOD_LAT:
1579             mod->BSIM4lat = value->rValue;
1580             mod->BSIM4latGiven = TRUE;
1581             break;
1582         case BSIM4_MOD_LKETA:
1583             mod->BSIM4lketa = value->rValue;
1584             mod->BSIM4lketaGiven = TRUE;
1585             break;
1586         case BSIM4_MOD_LNSUB:
1587             mod->BSIM4lnsub = value->rValue;
1588             mod->BSIM4lnsubGiven = TRUE;
1589             break;
1590         case BSIM4_MOD_LNDEP:
1591             mod->BSIM4lndep = value->rValue;
1592             mod->BSIM4lndepGiven = TRUE;
1593             if (mod->BSIM4lndep > 1.0e20)
1594                 mod->BSIM4lndep *= 1.0e-6;
1595             break;
1596         case BSIM4_MOD_LNSD:
1597             mod->BSIM4lnsd = value->rValue;
1598             mod->BSIM4lnsdGiven = TRUE;
1599             if (mod->BSIM4lnsd > 1.0e23)
1600                 mod->BSIM4lnsd *= 1.0e-6;
1601             break;
1602         case BSIM4_MOD_LNGATE:
1603             mod->BSIM4lngate = value->rValue;
1604             mod->BSIM4lngateGiven = TRUE;
1605             if (mod->BSIM4lngate > 1.0e23)
1606                 mod->BSIM4lngate *= 1.0e-6;
1607             break;
1608         case BSIM4_MOD_LGAMMA1:
1609             mod->BSIM4lgamma1 = value->rValue;
1610             mod->BSIM4lgamma1Given = TRUE;
1611             break;
1612         case BSIM4_MOD_LGAMMA2:
1613             mod->BSIM4lgamma2 = value->rValue;
1614             mod->BSIM4lgamma2Given = TRUE;
1615             break;
1616         case BSIM4_MOD_LVBX:
1617             mod->BSIM4lvbx = value->rValue;
1618             mod->BSIM4lvbxGiven = TRUE;
1619             break;
1620         case BSIM4_MOD_LVBM:
1621             mod->BSIM4lvbm = value->rValue;
1622             mod->BSIM4lvbmGiven = TRUE;
1623             break;
1624         case BSIM4_MOD_LXT:
1625             mod->BSIM4lxt = value->rValue;
1626             mod->BSIM4lxtGiven = TRUE;
1627             break;
1628         case  BSIM4_MOD_LK1:
1629             mod->BSIM4lk1 = value->rValue;
1630             mod->BSIM4lk1Given = TRUE;
1631             break;
1632         case  BSIM4_MOD_LKT1:
1633             mod->BSIM4lkt1 = value->rValue;
1634             mod->BSIM4lkt1Given = TRUE;
1635             break;
1636         case  BSIM4_MOD_LKT1L:
1637             mod->BSIM4lkt1l = value->rValue;
1638             mod->BSIM4lkt1lGiven = TRUE;
1639             break;
1640         case  BSIM4_MOD_LKT2:
1641             mod->BSIM4lkt2 = value->rValue;
1642             mod->BSIM4lkt2Given = TRUE;
1643             break;
1644         case  BSIM4_MOD_LK2:
1645             mod->BSIM4lk2 = value->rValue;
1646             mod->BSIM4lk2Given = TRUE;
1647             break;
1648         case  BSIM4_MOD_LK3:
1649             mod->BSIM4lk3 = value->rValue;
1650             mod->BSIM4lk3Given = TRUE;
1651             break;
1652         case  BSIM4_MOD_LK3B:
1653             mod->BSIM4lk3b = value->rValue;
1654             mod->BSIM4lk3bGiven = TRUE;
1655             break;
1656         case  BSIM4_MOD_LLPE0:
1657             mod->BSIM4llpe0 = value->rValue;
1658             mod->BSIM4llpe0Given = TRUE;
1659             break;
1660         case  BSIM4_MOD_LLPEB:
1661             mod->BSIM4llpeb = value->rValue;
1662             mod->BSIM4llpebGiven = TRUE;
1663             break;
1664         case  BSIM4_MOD_LDVTP0:
1665             mod->BSIM4ldvtp0 = value->rValue;
1666             mod->BSIM4ldvtp0Given = TRUE;
1667             break;
1668         case  BSIM4_MOD_LDVTP1:
1669             mod->BSIM4ldvtp1 = value->rValue;
1670             mod->BSIM4ldvtp1Given = TRUE;
1671             break;
1672         case  BSIM4_MOD_LDVTP2:     /* New DIBL/Rout */
1673             mod->BSIM4ldvtp2 = value->rValue;
1674             mod->BSIM4ldvtp2Given = TRUE;
1675             break;
1676         case  BSIM4_MOD_LDVTP3:
1677             mod->BSIM4ldvtp3 = value->rValue;
1678             mod->BSIM4ldvtp3Given = TRUE;
1679             break;
1680         case  BSIM4_MOD_LDVTP4:
1681             mod->BSIM4ldvtp4 = value->rValue;
1682             mod->BSIM4ldvtp4Given = TRUE;
1683             break;
1684         case  BSIM4_MOD_LDVTP5:
1685             mod->BSIM4ldvtp5 = value->rValue;
1686             mod->BSIM4ldvtp5Given = TRUE;
1687             break;
1688         case  BSIM4_MOD_LW0:
1689             mod->BSIM4lw0 = value->rValue;
1690             mod->BSIM4lw0Given = TRUE;
1691             break;
1692         case  BSIM4_MOD_LDVT0:
1693             mod->BSIM4ldvt0 = value->rValue;
1694             mod->BSIM4ldvt0Given = TRUE;
1695             break;
1696         case  BSIM4_MOD_LDVT1:
1697             mod->BSIM4ldvt1 = value->rValue;
1698             mod->BSIM4ldvt1Given = TRUE;
1699             break;
1700         case  BSIM4_MOD_LDVT2:
1701             mod->BSIM4ldvt2 = value->rValue;
1702             mod->BSIM4ldvt2Given = TRUE;
1703             break;
1704         case  BSIM4_MOD_LDVT0W:
1705             mod->BSIM4ldvt0w = value->rValue;
1706             mod->BSIM4ldvt0wGiven = TRUE;
1707             break;
1708         case  BSIM4_MOD_LDVT1W:
1709             mod->BSIM4ldvt1w = value->rValue;
1710             mod->BSIM4ldvt1wGiven = TRUE;
1711             break;
1712         case  BSIM4_MOD_LDVT2W:
1713             mod->BSIM4ldvt2w = value->rValue;
1714             mod->BSIM4ldvt2wGiven = TRUE;
1715             break;
1716         case  BSIM4_MOD_LDROUT:
1717             mod->BSIM4ldrout = value->rValue;
1718             mod->BSIM4ldroutGiven = TRUE;
1719             break;
1720         case  BSIM4_MOD_LDSUB:
1721             mod->BSIM4ldsub = value->rValue;
1722             mod->BSIM4ldsubGiven = TRUE;
1723             break;
1724         case BSIM4_MOD_LVTH0:
1725             mod->BSIM4lvth0 = value->rValue;
1726             mod->BSIM4lvth0Given = TRUE;
1727             break;
1728         case BSIM4_MOD_LUA:
1729             mod->BSIM4lua = value->rValue;
1730             mod->BSIM4luaGiven = TRUE;
1731             break;
1732         case BSIM4_MOD_LUA1:
1733             mod->BSIM4lua1 = value->rValue;
1734             mod->BSIM4lua1Given = TRUE;
1735             break;
1736         case BSIM4_MOD_LUB:
1737             mod->BSIM4lub = value->rValue;
1738             mod->BSIM4lubGiven = TRUE;
1739             break;
1740         case BSIM4_MOD_LUB1:
1741             mod->BSIM4lub1 = value->rValue;
1742             mod->BSIM4lub1Given = TRUE;
1743             break;
1744         case BSIM4_MOD_LUC:
1745             mod->BSIM4luc = value->rValue;
1746             mod->BSIM4lucGiven = TRUE;
1747             break;
1748         case BSIM4_MOD_LUC1:
1749             mod->BSIM4luc1 = value->rValue;
1750             mod->BSIM4luc1Given = TRUE;
1751             break;
1752         case  BSIM4_MOD_LU0 :
1753             mod->BSIM4lu0 = value->rValue;
1754             mod->BSIM4lu0Given = TRUE;
1755             break;
1756         case  BSIM4_MOD_LUTE :
1757             mod->BSIM4lute = value->rValue;
1758             mod->BSIM4luteGiven = TRUE;
1759             break;
1760                 case  BSIM4_MOD_LUCSTE :
1761             mod->BSIM4lucste = value->rValue;
1762             mod->BSIM4lucsteGiven = TRUE;
1763             break;
1764         case BSIM4_MOD_LVOFF:
1765             mod->BSIM4lvoff = value->rValue;
1766             mod->BSIM4lvoffGiven = TRUE;
1767             break;
1768         case BSIM4_MOD_LTVOFF:
1769             mod->BSIM4ltvoff = value->rValue;
1770             mod->BSIM4ltvoffGiven = TRUE;
1771             break;
1772         case BSIM4_MOD_LTNFACTOR:           /* v4.7 temp dep of leakage current  */
1773             mod->BSIM4ltnfactor = value->rValue;
1774             mod->BSIM4ltnfactorGiven = TRUE;
1775             break;
1776         case BSIM4_MOD_LTETA0:                /* v4.7 temp dep of leakage current  */
1777             mod->BSIM4lteta0 = value->rValue;
1778             mod->BSIM4lteta0Given = TRUE;
1779             break;
1780         case BSIM4_MOD_LTVOFFCV:        /* v4.7 temp dep of leakage current  */
1781             mod->BSIM4ltvoffcv = value->rValue;
1782             mod->BSIM4ltvoffcvGiven = TRUE;
1783             break;
1784         case BSIM4_MOD_LMINV:
1785             mod->BSIM4lminv = value->rValue;
1786             mod->BSIM4lminvGiven = TRUE;
1787             break;
1788         case BSIM4_MOD_LMINVCV:
1789             mod->BSIM4lminvcv = value->rValue;
1790             mod->BSIM4lminvcvGiven = TRUE;
1791             break;
1792         case BSIM4_MOD_LFPROUT:
1793             mod->BSIM4lfprout = value->rValue;
1794             mod->BSIM4lfproutGiven = TRUE;
1795             break;
1796         case BSIM4_MOD_LPDITS:
1797             mod->BSIM4lpdits = value->rValue;
1798             mod->BSIM4lpditsGiven = TRUE;
1799             break;
1800         case BSIM4_MOD_LPDITSD:
1801             mod->BSIM4lpditsd = value->rValue;
1802             mod->BSIM4lpditsdGiven = TRUE;
1803             break;
1804         case  BSIM4_MOD_LDELTA :
1805             mod->BSIM4ldelta = value->rValue;
1806             mod->BSIM4ldeltaGiven = TRUE;
1807             break;
1808         case BSIM4_MOD_LRDSW:
1809             mod->BSIM4lrdsw = value->rValue;
1810             mod->BSIM4lrdswGiven = TRUE;
1811             break;
1812         case BSIM4_MOD_LRDW:
1813             mod->BSIM4lrdw = value->rValue;
1814             mod->BSIM4lrdwGiven = TRUE;
1815             break;
1816         case BSIM4_MOD_LRSW:
1817             mod->BSIM4lrsw = value->rValue;
1818             mod->BSIM4lrswGiven = TRUE;
1819             break;
1820         case BSIM4_MOD_LPRWB:
1821             mod->BSIM4lprwb = value->rValue;
1822             mod->BSIM4lprwbGiven = TRUE;
1823             break;
1824         case BSIM4_MOD_LPRWG:
1825             mod->BSIM4lprwg = value->rValue;
1826             mod->BSIM4lprwgGiven = TRUE;
1827             break;
1828         case BSIM4_MOD_LPRT:
1829             mod->BSIM4lprt = value->rValue;
1830             mod->BSIM4lprtGiven = TRUE;
1831             break;
1832         case BSIM4_MOD_LETA0:
1833             mod->BSIM4leta0 = value->rValue;
1834             mod->BSIM4leta0Given = TRUE;
1835             break;
1836         case BSIM4_MOD_LETAB:
1837             mod->BSIM4letab = value->rValue;
1838             mod->BSIM4letabGiven = TRUE;
1839             break;
1840         case BSIM4_MOD_LPCLM:
1841             mod->BSIM4lpclm = value->rValue;
1842             mod->BSIM4lpclmGiven = TRUE;
1843             break;
1844         case BSIM4_MOD_LPDIBL1:
1845             mod->BSIM4lpdibl1 = value->rValue;
1846             mod->BSIM4lpdibl1Given = TRUE;
1847             break;
1848         case BSIM4_MOD_LPDIBL2:
1849             mod->BSIM4lpdibl2 = value->rValue;
1850             mod->BSIM4lpdibl2Given = TRUE;
1851             break;
1852         case BSIM4_MOD_LPDIBLB:
1853             mod->BSIM4lpdiblb = value->rValue;
1854             mod->BSIM4lpdiblbGiven = TRUE;
1855             break;
1856         case BSIM4_MOD_LPSCBE1:
1857             mod->BSIM4lpscbe1 = value->rValue;
1858             mod->BSIM4lpscbe1Given = TRUE;
1859             break;
1860         case BSIM4_MOD_LPSCBE2:
1861             mod->BSIM4lpscbe2 = value->rValue;
1862             mod->BSIM4lpscbe2Given = TRUE;
1863             break;
1864         case BSIM4_MOD_LPVAG:
1865             mod->BSIM4lpvag = value->rValue;
1866             mod->BSIM4lpvagGiven = TRUE;
1867             break;
1868         case  BSIM4_MOD_LWR :
1869             mod->BSIM4lwr = value->rValue;
1870             mod->BSIM4lwrGiven = TRUE;
1871             break;
1872         case  BSIM4_MOD_LDWG :
1873             mod->BSIM4ldwg = value->rValue;
1874             mod->BSIM4ldwgGiven = TRUE;
1875             break;
1876         case  BSIM4_MOD_LDWB :
1877             mod->BSIM4ldwb = value->rValue;
1878             mod->BSIM4ldwbGiven = TRUE;
1879             break;
1880         case  BSIM4_MOD_LB0 :
1881             mod->BSIM4lb0 = value->rValue;
1882             mod->BSIM4lb0Given = TRUE;
1883             break;
1884         case  BSIM4_MOD_LB1 :
1885             mod->BSIM4lb1 = value->rValue;
1886             mod->BSIM4lb1Given = TRUE;
1887             break;
1888         case  BSIM4_MOD_LALPHA0 :
1889             mod->BSIM4lalpha0 = value->rValue;
1890             mod->BSIM4lalpha0Given = TRUE;
1891             break;
1892         case  BSIM4_MOD_LALPHA1 :
1893             mod->BSIM4lalpha1 = value->rValue;
1894             mod->BSIM4lalpha1Given = TRUE;
1895             break;
1896         case  BSIM4_MOD_LBETA0 :
1897             mod->BSIM4lbeta0 = value->rValue;
1898             mod->BSIM4lbeta0Given = TRUE;
1899             break;
1900         case  BSIM4_MOD_LPHIN :
1901             mod->BSIM4lphin = value->rValue;
1902             mod->BSIM4lphinGiven = TRUE;
1903             break;
1904         case  BSIM4_MOD_LAGIDL :
1905             mod->BSIM4lagidl = value->rValue;
1906             mod->BSIM4lagidlGiven = TRUE;
1907             break;
1908         case  BSIM4_MOD_LBGIDL :
1909             mod->BSIM4lbgidl = value->rValue;
1910             mod->BSIM4lbgidlGiven = TRUE;
1911             break;
1912         case  BSIM4_MOD_LCGIDL :
1913             mod->BSIM4lcgidl = value->rValue;
1914             mod->BSIM4lcgidlGiven = TRUE;
1915             break;
1916         case  BSIM4_MOD_LEGIDL :
1917             mod->BSIM4legidl = value->rValue;
1918             mod->BSIM4legidlGiven = TRUE;
1919             break;
1920         case  BSIM4_MOD_LFGIDL :                        /* v4.7 New GIDL/GISL */
1921             mod->BSIM4lfgidl = value->rValue;
1922             mod->BSIM4lfgidlGiven = TRUE;
1923             break;
1924         case  BSIM4_MOD_LKGIDL :                        /* v4.7 New GIDL/GISL */
1925             mod->BSIM4lkgidl = value->rValue;
1926             mod->BSIM4lkgidlGiven = TRUE;
1927             break;
1928         case  BSIM4_MOD_LRGIDL :                        /* v4.7 New GIDL/GISL */
1929             mod->BSIM4lrgidl = value->rValue;
1930             mod->BSIM4lrgidlGiven = TRUE;
1931             break;
1932         case  BSIM4_MOD_LAGISL :
1933             mod->BSIM4lagisl = value->rValue;
1934             mod->BSIM4lagislGiven = TRUE;
1935             break;
1936         case  BSIM4_MOD_LBGISL :
1937             mod->BSIM4lbgisl = value->rValue;
1938             mod->BSIM4lbgislGiven = TRUE;
1939             break;
1940         case  BSIM4_MOD_LCGISL :
1941             mod->BSIM4lcgisl = value->rValue;
1942             mod->BSIM4lcgislGiven = TRUE;
1943             break;
1944         case  BSIM4_MOD_LEGISL :
1945             mod->BSIM4legisl = value->rValue;
1946             mod->BSIM4legislGiven = TRUE;
1947             break;
1948         case  BSIM4_MOD_LFGISL :                        /* v4.7 New GIDL/GISL */
1949             mod->BSIM4lfgisl = value->rValue;
1950             mod->BSIM4lfgislGiven = TRUE;
1951             break;
1952         case  BSIM4_MOD_LKGISL :                        /* v4.7 New GIDL/GISL */
1953             mod->BSIM4lkgisl = value->rValue;
1954             mod->BSIM4lkgislGiven = TRUE;
1955             break;
1956         case  BSIM4_MOD_LRGISL :                        /* v4.7 New GIDL/GISL */
1957             mod->BSIM4lrgisl = value->rValue;
1958             mod->BSIM4lrgislGiven = TRUE;
1959             break;
1960         case  BSIM4_MOD_LAIGC :
1961             mod->BSIM4laigc = value->rValue;
1962             mod->BSIM4laigcGiven = TRUE;
1963             break;
1964         case  BSIM4_MOD_LBIGC :
1965             mod->BSIM4lbigc = value->rValue;
1966             mod->BSIM4lbigcGiven = TRUE;
1967             break;
1968         case  BSIM4_MOD_LCIGC :
1969             mod->BSIM4lcigc = value->rValue;
1970             mod->BSIM4lcigcGiven = TRUE;
1971             break;
1972         case  BSIM4_MOD_LAIGSD :
1973             mod->BSIM4laigsd = value->rValue;
1974             mod->BSIM4laigsdGiven = TRUE;
1975             break;
1976         case  BSIM4_MOD_LBIGSD :
1977             mod->BSIM4lbigsd = value->rValue;
1978             mod->BSIM4lbigsdGiven = TRUE;
1979             break;
1980         case  BSIM4_MOD_LCIGSD :
1981             mod->BSIM4lcigsd = value->rValue;
1982             mod->BSIM4lcigsdGiven = TRUE;
1983             break;
1984         case  BSIM4_MOD_LAIGS :
1985             mod->BSIM4laigs = value->rValue;
1986             mod->BSIM4laigsGiven = TRUE;
1987             break;
1988         case  BSIM4_MOD_LBIGS :
1989             mod->BSIM4lbigs = value->rValue;
1990             mod->BSIM4lbigsGiven = TRUE;
1991             break;
1992         case  BSIM4_MOD_LCIGS :
1993             mod->BSIM4lcigs = value->rValue;
1994             mod->BSIM4lcigsGiven = TRUE;
1995             break;
1996         case  BSIM4_MOD_LAIGD :
1997             mod->BSIM4laigd = value->rValue;
1998             mod->BSIM4laigdGiven = TRUE;
1999             break;
2000         case  BSIM4_MOD_LBIGD :
2001             mod->BSIM4lbigd = value->rValue;
2002             mod->BSIM4lbigdGiven = TRUE;
2003             break;
2004         case  BSIM4_MOD_LCIGD :
2005             mod->BSIM4lcigd = value->rValue;
2006             mod->BSIM4lcigdGiven = TRUE;
2007             break;
2008         case  BSIM4_MOD_LAIGBACC :
2009             mod->BSIM4laigbacc = value->rValue;
2010             mod->BSIM4laigbaccGiven = TRUE;
2011             break;
2012         case  BSIM4_MOD_LBIGBACC :
2013             mod->BSIM4lbigbacc = value->rValue;
2014             mod->BSIM4lbigbaccGiven = TRUE;
2015             break;
2016         case  BSIM4_MOD_LCIGBACC :
2017             mod->BSIM4lcigbacc = value->rValue;
2018             mod->BSIM4lcigbaccGiven = TRUE;
2019             break;
2020         case  BSIM4_MOD_LAIGBINV :
2021             mod->BSIM4laigbinv = value->rValue;
2022             mod->BSIM4laigbinvGiven = TRUE;
2023             break;
2024         case  BSIM4_MOD_LBIGBINV :
2025             mod->BSIM4lbigbinv = value->rValue;
2026             mod->BSIM4lbigbinvGiven = TRUE;
2027             break;
2028         case  BSIM4_MOD_LCIGBINV :
2029             mod->BSIM4lcigbinv = value->rValue;
2030             mod->BSIM4lcigbinvGiven = TRUE;
2031             break;
2032         case  BSIM4_MOD_LNIGC :
2033             mod->BSIM4lnigc = value->rValue;
2034             mod->BSIM4lnigcGiven = TRUE;
2035             break;
2036         case  BSIM4_MOD_LNIGBINV :
2037             mod->BSIM4lnigbinv = value->rValue;
2038             mod->BSIM4lnigbinvGiven = TRUE;
2039             break;
2040         case  BSIM4_MOD_LNIGBACC :
2041             mod->BSIM4lnigbacc = value->rValue;
2042             mod->BSIM4lnigbaccGiven = TRUE;
2043             break;
2044         case  BSIM4_MOD_LNTOX :
2045             mod->BSIM4lntox = value->rValue;
2046             mod->BSIM4lntoxGiven = TRUE;
2047             break;
2048         case  BSIM4_MOD_LEIGBINV :
2049             mod->BSIM4leigbinv = value->rValue;
2050             mod->BSIM4leigbinvGiven = TRUE;
2051             break;
2052         case  BSIM4_MOD_LPIGCD :
2053             mod->BSIM4lpigcd = value->rValue;
2054             mod->BSIM4lpigcdGiven = TRUE;
2055             break;
2056         case  BSIM4_MOD_LPOXEDGE :
2057             mod->BSIM4lpoxedge = value->rValue;
2058             mod->BSIM4lpoxedgeGiven = TRUE;
2059             break;
2060         case  BSIM4_MOD_LXRCRG1 :
2061             mod->BSIM4lxrcrg1 = value->rValue;
2062             mod->BSIM4lxrcrg1Given = TRUE;
2063             break;
2064         case  BSIM4_MOD_LXRCRG2 :
2065             mod->BSIM4lxrcrg2 = value->rValue;
2066             mod->BSIM4lxrcrg2Given = TRUE;
2067             break;
2068         case  BSIM4_MOD_LLAMBDA :
2069             mod->BSIM4llambda = value->rValue;
2070             mod->BSIM4llambdaGiven = TRUE;
2071             break;
2072         case  BSIM4_MOD_LVTL :
2073             mod->BSIM4lvtl = value->rValue;
2074             mod->BSIM4lvtlGiven = TRUE;
2075             break;
2076         case  BSIM4_MOD_LXN:
2077             mod->BSIM4lxn = value->rValue;
2078             mod->BSIM4lxnGiven = TRUE;
2079             break;
2080         case  BSIM4_MOD_LVFBSDOFF:
2081             mod->BSIM4lvfbsdoff = value->rValue;
2082             mod->BSIM4lvfbsdoffGiven = TRUE;
2083             break;
2084         case  BSIM4_MOD_LTVFBSDOFF:
2085             mod->BSIM4ltvfbsdoff = value->rValue;
2086             mod->BSIM4ltvfbsdoffGiven = TRUE;
2087             break;
2088         case  BSIM4_MOD_LEU :
2089             mod->BSIM4leu = value->rValue;
2090             mod->BSIM4leuGiven = TRUE;
2091             break;
2092                 case  BSIM4_MOD_LUCS :
2093             mod->BSIM4lucs = value->rValue;
2094             mod->BSIM4lucsGiven = TRUE;
2095             break;
2096         case  BSIM4_MOD_LVFB :
2097             mod->BSIM4lvfb = value->rValue;
2098             mod->BSIM4lvfbGiven = TRUE;
2099             break;
2100         case  BSIM4_MOD_LCGSL :
2101             mod->BSIM4lcgsl = value->rValue;
2102             mod->BSIM4lcgslGiven = TRUE;
2103             break;
2104         case  BSIM4_MOD_LCGDL :
2105             mod->BSIM4lcgdl = value->rValue;
2106             mod->BSIM4lcgdlGiven = TRUE;
2107             break;
2108         case  BSIM4_MOD_LCKAPPAS :
2109             mod->BSIM4lckappas = value->rValue;
2110             mod->BSIM4lckappasGiven = TRUE;
2111             break;
2112         case  BSIM4_MOD_LCKAPPAD :
2113             mod->BSIM4lckappad = value->rValue;
2114             mod->BSIM4lckappadGiven = TRUE;
2115             break;
2116         case  BSIM4_MOD_LCF :
2117             mod->BSIM4lcf = value->rValue;
2118             mod->BSIM4lcfGiven = TRUE;
2119             break;
2120         case  BSIM4_MOD_LCLC :
2121             mod->BSIM4lclc = value->rValue;
2122             mod->BSIM4lclcGiven = TRUE;
2123             break;
2124         case  BSIM4_MOD_LCLE :
2125             mod->BSIM4lcle = value->rValue;
2126             mod->BSIM4lcleGiven = TRUE;
2127             break;
2128         case  BSIM4_MOD_LVFBCV :
2129             mod->BSIM4lvfbcv = value->rValue;
2130             mod->BSIM4lvfbcvGiven = TRUE;
2131             break;
2132         case  BSIM4_MOD_LACDE :
2133             mod->BSIM4lacde = value->rValue;
2134             mod->BSIM4lacdeGiven = TRUE;
2135             break;
2136         case  BSIM4_MOD_LMOIN :
2137             mod->BSIM4lmoin = value->rValue;
2138             mod->BSIM4lmoinGiven = TRUE;
2139             break;
2140         case  BSIM4_MOD_LNOFF :
2141             mod->BSIM4lnoff = value->rValue;
2142             mod->BSIM4lnoffGiven = TRUE;
2143             break;
2144         case  BSIM4_MOD_LVOFFCV :
2145             mod->BSIM4lvoffcv = value->rValue;
2146             mod->BSIM4lvoffcvGiven = TRUE;
2147             break;
2148 
2149         /* Width dependence */
2150         case  BSIM4_MOD_WCDSC :
2151             mod->BSIM4wcdsc = value->rValue;
2152             mod->BSIM4wcdscGiven = TRUE;
2153             break;
2154 
2155 
2156          case  BSIM4_MOD_WCDSCB :
2157             mod->BSIM4wcdscb = value->rValue;
2158             mod->BSIM4wcdscbGiven = TRUE;
2159             break;
2160          case  BSIM4_MOD_WCDSCD :
2161             mod->BSIM4wcdscd = value->rValue;
2162             mod->BSIM4wcdscdGiven = TRUE;
2163             break;
2164         case  BSIM4_MOD_WCIT :
2165             mod->BSIM4wcit = value->rValue;
2166             mod->BSIM4wcitGiven = TRUE;
2167             break;
2168         case  BSIM4_MOD_WNFACTOR :
2169             mod->BSIM4wnfactor = value->rValue;
2170             mod->BSIM4wnfactorGiven = TRUE;
2171             break;
2172         case BSIM4_MOD_WXJ:
2173             mod->BSIM4wxj = value->rValue;
2174             mod->BSIM4wxjGiven = TRUE;
2175             break;
2176         case BSIM4_MOD_WVSAT:
2177             mod->BSIM4wvsat = value->rValue;
2178             mod->BSIM4wvsatGiven = TRUE;
2179             break;
2180 
2181 
2182         case BSIM4_MOD_WA0:
2183             mod->BSIM4wa0 = value->rValue;
2184             mod->BSIM4wa0Given = TRUE;
2185             break;
2186         case BSIM4_MOD_WAGS:
2187             mod->BSIM4wags = value->rValue;
2188             mod->BSIM4wagsGiven = TRUE;
2189             break;
2190         case BSIM4_MOD_WA1:
2191             mod->BSIM4wa1 = value->rValue;
2192             mod->BSIM4wa1Given = TRUE;
2193             break;
2194         case BSIM4_MOD_WA2:
2195             mod->BSIM4wa2 = value->rValue;
2196             mod->BSIM4wa2Given = TRUE;
2197             break;
2198         case BSIM4_MOD_WAT:
2199             mod->BSIM4wat = value->rValue;
2200             mod->BSIM4watGiven = TRUE;
2201             break;
2202         case BSIM4_MOD_WKETA:
2203             mod->BSIM4wketa = value->rValue;
2204             mod->BSIM4wketaGiven = TRUE;
2205             break;
2206         case BSIM4_MOD_WNSUB:
2207             mod->BSIM4wnsub = value->rValue;
2208             mod->BSIM4wnsubGiven = TRUE;
2209             break;
2210         case BSIM4_MOD_WNDEP:
2211             mod->BSIM4wndep = value->rValue;
2212             mod->BSIM4wndepGiven = TRUE;
2213             if (mod->BSIM4wndep > 1.0e20)
2214                 mod->BSIM4wndep *= 1.0e-6;
2215             break;
2216         case BSIM4_MOD_WNSD:
2217             mod->BSIM4wnsd = value->rValue;
2218             mod->BSIM4wnsdGiven = TRUE;
2219             if (mod->BSIM4wnsd > 1.0e23)
2220                 mod->BSIM4wnsd *= 1.0e-6;
2221             break;
2222         case BSIM4_MOD_WNGATE:
2223             mod->BSIM4wngate = value->rValue;
2224             mod->BSIM4wngateGiven = TRUE;
2225             if (mod->BSIM4wngate > 1.0e23)
2226                 mod->BSIM4wngate *= 1.0e-6;
2227             break;
2228         case BSIM4_MOD_WGAMMA1:
2229             mod->BSIM4wgamma1 = value->rValue;
2230             mod->BSIM4wgamma1Given = TRUE;
2231             break;
2232         case BSIM4_MOD_WGAMMA2:
2233             mod->BSIM4wgamma2 = value->rValue;
2234             mod->BSIM4wgamma2Given = TRUE;
2235             break;
2236         case BSIM4_MOD_WVBX:
2237             mod->BSIM4wvbx = value->rValue;
2238             mod->BSIM4wvbxGiven = TRUE;
2239             break;
2240         case BSIM4_MOD_WVBM:
2241             mod->BSIM4wvbm = value->rValue;
2242             mod->BSIM4wvbmGiven = TRUE;
2243             break;
2244         case BSIM4_MOD_WXT:
2245             mod->BSIM4wxt = value->rValue;
2246             mod->BSIM4wxtGiven = TRUE;
2247             break;
2248         case  BSIM4_MOD_WK1:
2249             mod->BSIM4wk1 = value->rValue;
2250             mod->BSIM4wk1Given = TRUE;
2251             break;
2252         case  BSIM4_MOD_WKT1:
2253             mod->BSIM4wkt1 = value->rValue;
2254             mod->BSIM4wkt1Given = TRUE;
2255             break;
2256         case  BSIM4_MOD_WKT1L:
2257             mod->BSIM4wkt1l = value->rValue;
2258             mod->BSIM4wkt1lGiven = TRUE;
2259             break;
2260         case  BSIM4_MOD_WKT2:
2261             mod->BSIM4wkt2 = value->rValue;
2262             mod->BSIM4wkt2Given = TRUE;
2263             break;
2264         case  BSIM4_MOD_WK2:
2265             mod->BSIM4wk2 = value->rValue;
2266             mod->BSIM4wk2Given = TRUE;
2267             break;
2268         case  BSIM4_MOD_WK3:
2269             mod->BSIM4wk3 = value->rValue;
2270             mod->BSIM4wk3Given = TRUE;
2271             break;
2272         case  BSIM4_MOD_WK3B:
2273             mod->BSIM4wk3b = value->rValue;
2274             mod->BSIM4wk3bGiven = TRUE;
2275             break;
2276         case  BSIM4_MOD_WLPE0:
2277             mod->BSIM4wlpe0 = value->rValue;
2278             mod->BSIM4wlpe0Given = TRUE;
2279             break;
2280         case  BSIM4_MOD_WLPEB:
2281             mod->BSIM4wlpeb = value->rValue;
2282             mod->BSIM4wlpebGiven = TRUE;
2283             break;
2284         case  BSIM4_MOD_WDVTP0:
2285             mod->BSIM4wdvtp0 = value->rValue;
2286             mod->BSIM4wdvtp0Given = TRUE;
2287             break;
2288         case  BSIM4_MOD_WDVTP1:
2289             mod->BSIM4wdvtp1 = value->rValue;
2290             mod->BSIM4wdvtp1Given = TRUE;
2291             break;
2292         case  BSIM4_MOD_WDVTP2:     /* New DIBL/Rout */
2293             mod->BSIM4wdvtp2 = value->rValue;
2294             mod->BSIM4wdvtp2Given = TRUE;
2295             break;
2296         case  BSIM4_MOD_WDVTP3:
2297             mod->BSIM4wdvtp3 = value->rValue;
2298             mod->BSIM4wdvtp3Given = TRUE;
2299             break;
2300         case  BSIM4_MOD_WDVTP4:
2301             mod->BSIM4wdvtp4 = value->rValue;
2302             mod->BSIM4wdvtp4Given = TRUE;
2303             break;
2304         case  BSIM4_MOD_WDVTP5:
2305             mod->BSIM4wdvtp5 = value->rValue;
2306             mod->BSIM4wdvtp5Given = TRUE;
2307             break;
2308         case  BSIM4_MOD_WW0:
2309             mod->BSIM4ww0 = value->rValue;
2310             mod->BSIM4ww0Given = TRUE;
2311             break;
2312         case  BSIM4_MOD_WDVT0:
2313             mod->BSIM4wdvt0 = value->rValue;
2314             mod->BSIM4wdvt0Given = TRUE;
2315             break;
2316         case  BSIM4_MOD_WDVT1:
2317             mod->BSIM4wdvt1 = value->rValue;
2318             mod->BSIM4wdvt1Given = TRUE;
2319             break;
2320         case  BSIM4_MOD_WDVT2:
2321             mod->BSIM4wdvt2 = value->rValue;
2322             mod->BSIM4wdvt2Given = TRUE;
2323             break;
2324         case  BSIM4_MOD_WDVT0W:
2325             mod->BSIM4wdvt0w = value->rValue;
2326             mod->BSIM4wdvt0wGiven = TRUE;
2327             break;
2328         case  BSIM4_MOD_WDVT1W:
2329             mod->BSIM4wdvt1w = value->rValue;
2330             mod->BSIM4wdvt1wGiven = TRUE;
2331             break;
2332         case  BSIM4_MOD_WDVT2W:
2333             mod->BSIM4wdvt2w = value->rValue;
2334             mod->BSIM4wdvt2wGiven = TRUE;
2335             break;
2336         case  BSIM4_MOD_WDROUT:
2337             mod->BSIM4wdrout = value->rValue;
2338             mod->BSIM4wdroutGiven = TRUE;
2339             break;
2340         case  BSIM4_MOD_WDSUB:
2341             mod->BSIM4wdsub = value->rValue;
2342             mod->BSIM4wdsubGiven = TRUE;
2343             break;
2344         case BSIM4_MOD_WVTH0:
2345             mod->BSIM4wvth0 = value->rValue;
2346             mod->BSIM4wvth0Given = TRUE;
2347             break;
2348         case BSIM4_MOD_WUA:
2349             mod->BSIM4wua = value->rValue;
2350             mod->BSIM4wuaGiven = TRUE;
2351             break;
2352         case BSIM4_MOD_WUA1:
2353             mod->BSIM4wua1 = value->rValue;
2354             mod->BSIM4wua1Given = TRUE;
2355             break;
2356         case BSIM4_MOD_WUB:
2357             mod->BSIM4wub = value->rValue;
2358             mod->BSIM4wubGiven = TRUE;
2359             break;
2360         case BSIM4_MOD_WUB1:
2361             mod->BSIM4wub1 = value->rValue;
2362             mod->BSIM4wub1Given = TRUE;
2363             break;
2364         case BSIM4_MOD_WUC:
2365             mod->BSIM4wuc = value->rValue;
2366             mod->BSIM4wucGiven = TRUE;
2367             break;
2368         case BSIM4_MOD_WUC1:
2369             mod->BSIM4wuc1 = value->rValue;
2370             mod->BSIM4wuc1Given = TRUE;
2371             break;
2372         case  BSIM4_MOD_WU0 :
2373             mod->BSIM4wu0 = value->rValue;
2374             mod->BSIM4wu0Given = TRUE;
2375             break;
2376         case  BSIM4_MOD_WUTE :
2377             mod->BSIM4wute = value->rValue;
2378             mod->BSIM4wuteGiven = TRUE;
2379             break;
2380         case  BSIM4_MOD_WUCSTE :
2381             mod->BSIM4wucste = value->rValue;
2382             mod->BSIM4wucsteGiven = TRUE;
2383             break;
2384         case BSIM4_MOD_WVOFF:
2385             mod->BSIM4wvoff = value->rValue;
2386             mod->BSIM4wvoffGiven = TRUE;
2387             break;
2388         case BSIM4_MOD_WTVOFF:
2389             mod->BSIM4wtvoff = value->rValue;
2390             mod->BSIM4wtvoffGiven = TRUE;
2391             break;
2392         case BSIM4_MOD_WTNFACTOR:           /* v4.7 temp dep of leakage current  */
2393             mod->BSIM4wtnfactor = value->rValue;
2394             mod->BSIM4wtnfactorGiven = TRUE;
2395             break;
2396         case BSIM4_MOD_WTETA0:                /* v4.7 temp dep of leakage current  */
2397             mod->BSIM4wteta0 = value->rValue;
2398             mod->BSIM4wteta0Given = TRUE;
2399             break;
2400         case BSIM4_MOD_WTVOFFCV:        /* v4.7 temp dep of leakage current  */
2401             mod->BSIM4wtvoffcv = value->rValue;
2402             mod->BSIM4wtvoffcvGiven = TRUE;
2403             break;
2404         case BSIM4_MOD_WMINV:
2405             mod->BSIM4wminv = value->rValue;
2406             mod->BSIM4wminvGiven = TRUE;
2407             break;
2408         case BSIM4_MOD_WMINVCV:
2409             mod->BSIM4wminvcv = value->rValue;
2410             mod->BSIM4wminvcvGiven = TRUE;
2411             break;
2412         case BSIM4_MOD_WFPROUT:
2413             mod->BSIM4wfprout = value->rValue;
2414             mod->BSIM4wfproutGiven = TRUE;
2415             break;
2416         case BSIM4_MOD_WPDITS:
2417             mod->BSIM4wpdits = value->rValue;
2418             mod->BSIM4wpditsGiven = TRUE;
2419             break;
2420         case BSIM4_MOD_WPDITSD:
2421             mod->BSIM4wpditsd = value->rValue;
2422             mod->BSIM4wpditsdGiven = TRUE;
2423             break;
2424         case  BSIM4_MOD_WDELTA :
2425             mod->BSIM4wdelta = value->rValue;
2426             mod->BSIM4wdeltaGiven = TRUE;
2427             break;
2428         case BSIM4_MOD_WRDSW:
2429             mod->BSIM4wrdsw = value->rValue;
2430             mod->BSIM4wrdswGiven = TRUE;
2431             break;
2432         case BSIM4_MOD_WRDW:
2433             mod->BSIM4wrdw = value->rValue;
2434             mod->BSIM4wrdwGiven = TRUE;
2435             break;
2436         case BSIM4_MOD_WRSW:
2437             mod->BSIM4wrsw = value->rValue;
2438             mod->BSIM4wrswGiven = TRUE;
2439             break;
2440         case BSIM4_MOD_WPRWB:
2441             mod->BSIM4wprwb = value->rValue;
2442             mod->BSIM4wprwbGiven = TRUE;
2443             break;
2444         case BSIM4_MOD_WPRWG:
2445             mod->BSIM4wprwg = value->rValue;
2446             mod->BSIM4wprwgGiven = TRUE;
2447             break;
2448         case BSIM4_MOD_WPRT:
2449             mod->BSIM4wprt = value->rValue;
2450             mod->BSIM4wprtGiven = TRUE;
2451             break;
2452         case BSIM4_MOD_WETA0:
2453             mod->BSIM4weta0 = value->rValue;
2454             mod->BSIM4weta0Given = TRUE;
2455             break;
2456         case BSIM4_MOD_WETAB:
2457             mod->BSIM4wetab = value->rValue;
2458             mod->BSIM4wetabGiven = TRUE;
2459             break;
2460         case BSIM4_MOD_WPCLM:
2461             mod->BSIM4wpclm = value->rValue;
2462             mod->BSIM4wpclmGiven = TRUE;
2463             break;
2464         case BSIM4_MOD_WPDIBL1:
2465             mod->BSIM4wpdibl1 = value->rValue;
2466             mod->BSIM4wpdibl1Given = TRUE;
2467             break;
2468         case BSIM4_MOD_WPDIBL2:
2469             mod->BSIM4wpdibl2 = value->rValue;
2470             mod->BSIM4wpdibl2Given = TRUE;
2471             break;
2472         case BSIM4_MOD_WPDIBLB:
2473             mod->BSIM4wpdiblb = value->rValue;
2474             mod->BSIM4wpdiblbGiven = TRUE;
2475             break;
2476         case BSIM4_MOD_WPSCBE1:
2477             mod->BSIM4wpscbe1 = value->rValue;
2478             mod->BSIM4wpscbe1Given = TRUE;
2479             break;
2480         case BSIM4_MOD_WPSCBE2:
2481             mod->BSIM4wpscbe2 = value->rValue;
2482             mod->BSIM4wpscbe2Given = TRUE;
2483             break;
2484         case BSIM4_MOD_WPVAG:
2485             mod->BSIM4wpvag = value->rValue;
2486             mod->BSIM4wpvagGiven = TRUE;
2487             break;
2488         case  BSIM4_MOD_WWR :
2489             mod->BSIM4wwr = value->rValue;
2490             mod->BSIM4wwrGiven = TRUE;
2491             break;
2492         case  BSIM4_MOD_WDWG :
2493             mod->BSIM4wdwg = value->rValue;
2494             mod->BSIM4wdwgGiven = TRUE;
2495             break;
2496         case  BSIM4_MOD_WDWB :
2497             mod->BSIM4wdwb = value->rValue;
2498             mod->BSIM4wdwbGiven = TRUE;
2499             break;
2500         case  BSIM4_MOD_WB0 :
2501             mod->BSIM4wb0 = value->rValue;
2502             mod->BSIM4wb0Given = TRUE;
2503             break;
2504         case  BSIM4_MOD_WB1 :
2505             mod->BSIM4wb1 = value->rValue;
2506             mod->BSIM4wb1Given = TRUE;
2507             break;
2508         case  BSIM4_MOD_WALPHA0 :
2509             mod->BSIM4walpha0 = value->rValue;
2510             mod->BSIM4walpha0Given = TRUE;
2511             break;
2512         case  BSIM4_MOD_WALPHA1 :
2513             mod->BSIM4walpha1 = value->rValue;
2514             mod->BSIM4walpha1Given = TRUE;
2515             break;
2516         case  BSIM4_MOD_WBETA0 :
2517             mod->BSIM4wbeta0 = value->rValue;
2518             mod->BSIM4wbeta0Given = TRUE;
2519             break;
2520         case  BSIM4_MOD_WPHIN :
2521             mod->BSIM4wphin = value->rValue;
2522             mod->BSIM4wphinGiven = TRUE;
2523             break;
2524         case  BSIM4_MOD_WAGIDL :
2525             mod->BSIM4wagidl = value->rValue;
2526             mod->BSIM4wagidlGiven = TRUE;
2527             break;
2528         case  BSIM4_MOD_WBGIDL :
2529             mod->BSIM4wbgidl = value->rValue;
2530             mod->BSIM4wbgidlGiven = TRUE;
2531             break;
2532         case  BSIM4_MOD_WCGIDL :
2533             mod->BSIM4wcgidl = value->rValue;
2534             mod->BSIM4wcgidlGiven = TRUE;
2535             break;
2536         case  BSIM4_MOD_WEGIDL :
2537             mod->BSIM4wegidl = value->rValue;
2538             mod->BSIM4wegidlGiven = TRUE;
2539             break;
2540         case  BSIM4_MOD_WFGIDL :                        /* v4.7 New GIDL/GISL */
2541             mod->BSIM4wfgidl = value->rValue;
2542             mod->BSIM4wfgidlGiven = TRUE;
2543             break;
2544         case  BSIM4_MOD_WKGIDL :                        /* v4.7 New GIDL/GISL */
2545             mod->BSIM4wkgidl = value->rValue;
2546             mod->BSIM4wkgidlGiven = TRUE;
2547             break;
2548         case  BSIM4_MOD_WRGIDL :                        /* v4.7 New GIDL/GISL */
2549             mod->BSIM4wrgidl = value->rValue;
2550             mod->BSIM4wrgidlGiven = TRUE;
2551             break;
2552         case  BSIM4_MOD_WAGISL :
2553             mod->BSIM4wagisl = value->rValue;
2554             mod->BSIM4wagislGiven = TRUE;
2555             break;
2556         case  BSIM4_MOD_WBGISL :
2557             mod->BSIM4wbgisl = value->rValue;
2558             mod->BSIM4wbgislGiven = TRUE;
2559             break;
2560         case  BSIM4_MOD_WCGISL :
2561             mod->BSIM4wcgisl = value->rValue;
2562             mod->BSIM4wcgislGiven = TRUE;
2563             break;
2564         case  BSIM4_MOD_WEGISL :
2565             mod->BSIM4wegisl = value->rValue;
2566             mod->BSIM4wegislGiven = TRUE;
2567             break;
2568         case  BSIM4_MOD_WFGISL :                        /* v4.7 New GIDL/GISL */
2569             mod->BSIM4wfgisl = value->rValue;
2570             mod->BSIM4wfgislGiven = TRUE;
2571             break;
2572         case  BSIM4_MOD_WKGISL :                        /* v4.7 New GIDL/GISL */
2573             mod->BSIM4wkgisl = value->rValue;
2574             mod->BSIM4wkgislGiven = TRUE;
2575             break;
2576         case  BSIM4_MOD_WRGISL :                        /* v4.7 New GIDL/GISL */
2577             mod->BSIM4wrgisl = value->rValue;
2578             mod->BSIM4wrgislGiven = TRUE;
2579             break;
2580         case  BSIM4_MOD_WAIGC :
2581             mod->BSIM4waigc = value->rValue;
2582             mod->BSIM4waigcGiven = TRUE;
2583             break;
2584         case  BSIM4_MOD_WBIGC :
2585             mod->BSIM4wbigc = value->rValue;
2586             mod->BSIM4wbigcGiven = TRUE;
2587             break;
2588         case  BSIM4_MOD_WCIGC :
2589             mod->BSIM4wcigc = value->rValue;
2590             mod->BSIM4wcigcGiven = TRUE;
2591             break;
2592         case  BSIM4_MOD_WAIGSD :
2593             mod->BSIM4waigsd = value->rValue;
2594             mod->BSIM4waigsdGiven = TRUE;
2595             break;
2596         case  BSIM4_MOD_WBIGSD :
2597             mod->BSIM4wbigsd = value->rValue;
2598             mod->BSIM4wbigsdGiven = TRUE;
2599             break;
2600         case  BSIM4_MOD_WCIGSD :
2601             mod->BSIM4wcigsd = value->rValue;
2602             mod->BSIM4wcigsdGiven = TRUE;
2603             break;
2604         case  BSIM4_MOD_WAIGS :
2605             mod->BSIM4waigs = value->rValue;
2606             mod->BSIM4waigsGiven = TRUE;
2607             break;
2608         case  BSIM4_MOD_WBIGS :
2609             mod->BSIM4wbigs = value->rValue;
2610             mod->BSIM4wbigsGiven = TRUE;
2611             break;
2612         case  BSIM4_MOD_WCIGS :
2613             mod->BSIM4wcigs = value->rValue;
2614             mod->BSIM4wcigsGiven = TRUE;
2615             break;
2616         case  BSIM4_MOD_WAIGD :
2617             mod->BSIM4waigd = value->rValue;
2618             mod->BSIM4waigdGiven = TRUE;
2619             break;
2620         case  BSIM4_MOD_WBIGD :
2621             mod->BSIM4wbigd = value->rValue;
2622             mod->BSIM4wbigdGiven = TRUE;
2623             break;
2624         case  BSIM4_MOD_WCIGD :
2625             mod->BSIM4wcigd = value->rValue;
2626             mod->BSIM4wcigdGiven = TRUE;
2627             break;
2628         case  BSIM4_MOD_WAIGBACC :
2629             mod->BSIM4waigbacc = value->rValue;
2630             mod->BSIM4waigbaccGiven = TRUE;
2631             break;
2632         case  BSIM4_MOD_WBIGBACC :
2633             mod->BSIM4wbigbacc = value->rValue;
2634             mod->BSIM4wbigbaccGiven = TRUE;
2635             break;
2636         case  BSIM4_MOD_WCIGBACC :
2637             mod->BSIM4wcigbacc = value->rValue;
2638             mod->BSIM4wcigbaccGiven = TRUE;
2639             break;
2640         case  BSIM4_MOD_WAIGBINV :
2641             mod->BSIM4waigbinv = value->rValue;
2642             mod->BSIM4waigbinvGiven = TRUE;
2643             break;
2644         case  BSIM4_MOD_WBIGBINV :
2645             mod->BSIM4wbigbinv = value->rValue;
2646             mod->BSIM4wbigbinvGiven = TRUE;
2647             break;
2648         case  BSIM4_MOD_WCIGBINV :
2649             mod->BSIM4wcigbinv = value->rValue;
2650             mod->BSIM4wcigbinvGiven = TRUE;
2651             break;
2652         case  BSIM4_MOD_WNIGC :
2653             mod->BSIM4wnigc = value->rValue;
2654             mod->BSIM4wnigcGiven = TRUE;
2655             break;
2656         case  BSIM4_MOD_WNIGBINV :
2657             mod->BSIM4wnigbinv = value->rValue;
2658             mod->BSIM4wnigbinvGiven = TRUE;
2659             break;
2660         case  BSIM4_MOD_WNIGBACC :
2661             mod->BSIM4wnigbacc = value->rValue;
2662             mod->BSIM4wnigbaccGiven = TRUE;
2663             break;
2664         case  BSIM4_MOD_WNTOX :
2665             mod->BSIM4wntox = value->rValue;
2666             mod->BSIM4wntoxGiven = TRUE;
2667             break;
2668         case  BSIM4_MOD_WEIGBINV :
2669             mod->BSIM4weigbinv = value->rValue;
2670             mod->BSIM4weigbinvGiven = TRUE;
2671             break;
2672         case  BSIM4_MOD_WPIGCD :
2673             mod->BSIM4wpigcd = value->rValue;
2674             mod->BSIM4wpigcdGiven = TRUE;
2675             break;
2676         case  BSIM4_MOD_WPOXEDGE :
2677             mod->BSIM4wpoxedge = value->rValue;
2678             mod->BSIM4wpoxedgeGiven = TRUE;
2679             break;
2680         case  BSIM4_MOD_WXRCRG1 :
2681             mod->BSIM4wxrcrg1 = value->rValue;
2682             mod->BSIM4wxrcrg1Given = TRUE;
2683             break;
2684         case  BSIM4_MOD_WXRCRG2 :
2685             mod->BSIM4wxrcrg2 = value->rValue;
2686             mod->BSIM4wxrcrg2Given = TRUE;
2687             break;
2688         case  BSIM4_MOD_WLAMBDA :
2689             mod->BSIM4wlambda = value->rValue;
2690             mod->BSIM4wlambdaGiven = TRUE;
2691             break;
2692         case  BSIM4_MOD_WVTL :
2693             mod->BSIM4wvtl = value->rValue;
2694             mod->BSIM4wvtlGiven = TRUE;
2695             break;
2696         case  BSIM4_MOD_WXN:
2697             mod->BSIM4wxn = value->rValue;
2698             mod->BSIM4wxnGiven = TRUE;
2699             break;
2700         case  BSIM4_MOD_WVFBSDOFF:
2701             mod->BSIM4wvfbsdoff = value->rValue;
2702             mod->BSIM4wvfbsdoffGiven = TRUE;
2703             break;
2704         case  BSIM4_MOD_WTVFBSDOFF:
2705             mod->BSIM4wtvfbsdoff = value->rValue;
2706             mod->BSIM4wtvfbsdoffGiven = TRUE;
2707             break;
2708         case  BSIM4_MOD_WEU :
2709             mod->BSIM4weu = value->rValue;
2710             mod->BSIM4weuGiven = TRUE;
2711             break;
2712                  case  BSIM4_MOD_WUCS :
2713             mod->BSIM4wucs = value->rValue;
2714             mod->BSIM4wucsGiven = TRUE;
2715             break;
2716         case  BSIM4_MOD_WVFB :
2717             mod->BSIM4wvfb = value->rValue;
2718             mod->BSIM4wvfbGiven = TRUE;
2719             break;
2720         case  BSIM4_MOD_WCGSL :
2721             mod->BSIM4wcgsl = value->rValue;
2722             mod->BSIM4wcgslGiven = TRUE;
2723             break;
2724         case  BSIM4_MOD_WCGDL :
2725             mod->BSIM4wcgdl = value->rValue;
2726             mod->BSIM4wcgdlGiven = TRUE;
2727             break;
2728         case  BSIM4_MOD_WCKAPPAS :
2729             mod->BSIM4wckappas = value->rValue;
2730             mod->BSIM4wckappasGiven = TRUE;
2731             break;
2732         case  BSIM4_MOD_WCKAPPAD :
2733             mod->BSIM4wckappad = value->rValue;
2734             mod->BSIM4wckappadGiven = TRUE;
2735             break;
2736         case  BSIM4_MOD_WCF :
2737             mod->BSIM4wcf = value->rValue;
2738             mod->BSIM4wcfGiven = TRUE;
2739             break;
2740         case  BSIM4_MOD_WCLC :
2741             mod->BSIM4wclc = value->rValue;
2742             mod->BSIM4wclcGiven = TRUE;
2743             break;
2744         case  BSIM4_MOD_WCLE :
2745             mod->BSIM4wcle = value->rValue;
2746             mod->BSIM4wcleGiven = TRUE;
2747             break;
2748         case  BSIM4_MOD_WVFBCV :
2749             mod->BSIM4wvfbcv = value->rValue;
2750             mod->BSIM4wvfbcvGiven = TRUE;
2751             break;
2752         case  BSIM4_MOD_WACDE :
2753             mod->BSIM4wacde = value->rValue;
2754             mod->BSIM4wacdeGiven = TRUE;
2755             break;
2756         case  BSIM4_MOD_WMOIN :
2757             mod->BSIM4wmoin = value->rValue;
2758             mod->BSIM4wmoinGiven = TRUE;
2759             break;
2760         case  BSIM4_MOD_WNOFF :
2761             mod->BSIM4wnoff = value->rValue;
2762             mod->BSIM4wnoffGiven = TRUE;
2763             break;
2764         case  BSIM4_MOD_WVOFFCV :
2765             mod->BSIM4wvoffcv = value->rValue;
2766             mod->BSIM4wvoffcvGiven = TRUE;
2767             break;
2768 
2769         /* Cross-term dependence */
2770         case  BSIM4_MOD_PCDSC :
2771             mod->BSIM4pcdsc = value->rValue;
2772             mod->BSIM4pcdscGiven = TRUE;
2773             break;
2774 
2775 
2776         case  BSIM4_MOD_PCDSCB :
2777             mod->BSIM4pcdscb = value->rValue;
2778             mod->BSIM4pcdscbGiven = TRUE;
2779             break;
2780         case  BSIM4_MOD_PCDSCD :
2781             mod->BSIM4pcdscd = value->rValue;
2782             mod->BSIM4pcdscdGiven = TRUE;
2783             break;
2784         case  BSIM4_MOD_PCIT :
2785             mod->BSIM4pcit = value->rValue;
2786             mod->BSIM4pcitGiven = TRUE;
2787             break;
2788         case  BSIM4_MOD_PNFACTOR :
2789             mod->BSIM4pnfactor = value->rValue;
2790             mod->BSIM4pnfactorGiven = TRUE;
2791             break;
2792         case BSIM4_MOD_PXJ:
2793             mod->BSIM4pxj = value->rValue;
2794             mod->BSIM4pxjGiven = TRUE;
2795             break;
2796         case BSIM4_MOD_PVSAT:
2797             mod->BSIM4pvsat = value->rValue;
2798             mod->BSIM4pvsatGiven = TRUE;
2799             break;
2800 
2801 
2802         case BSIM4_MOD_PA0:
2803             mod->BSIM4pa0 = value->rValue;
2804             mod->BSIM4pa0Given = TRUE;
2805             break;
2806         case BSIM4_MOD_PAGS:
2807             mod->BSIM4pags = value->rValue;
2808             mod->BSIM4pagsGiven = TRUE;
2809             break;
2810         case BSIM4_MOD_PA1:
2811             mod->BSIM4pa1 = value->rValue;
2812             mod->BSIM4pa1Given = TRUE;
2813             break;
2814         case BSIM4_MOD_PA2:
2815             mod->BSIM4pa2 = value->rValue;
2816             mod->BSIM4pa2Given = TRUE;
2817             break;
2818         case BSIM4_MOD_PAT:
2819             mod->BSIM4pat = value->rValue;
2820             mod->BSIM4patGiven = TRUE;
2821             break;
2822         case BSIM4_MOD_PKETA:
2823             mod->BSIM4pketa = value->rValue;
2824             mod->BSIM4pketaGiven = TRUE;
2825             break;
2826         case BSIM4_MOD_PNSUB:
2827             mod->BSIM4pnsub = value->rValue;
2828             mod->BSIM4pnsubGiven = TRUE;
2829             break;
2830         case BSIM4_MOD_PNDEP:
2831             mod->BSIM4pndep = value->rValue;
2832             mod->BSIM4pndepGiven = TRUE;
2833             if (mod->BSIM4pndep > 1.0e20)
2834                 mod->BSIM4pndep *= 1.0e-6;
2835             break;
2836         case BSIM4_MOD_PNSD:
2837             mod->BSIM4pnsd = value->rValue;
2838             mod->BSIM4pnsdGiven = TRUE;
2839             if (mod->BSIM4pnsd > 1.0e23)
2840                 mod->BSIM4pnsd *= 1.0e-6;
2841             break;
2842         case BSIM4_MOD_PNGATE:
2843             mod->BSIM4pngate = value->rValue;
2844             mod->BSIM4pngateGiven = TRUE;
2845             if (mod->BSIM4pngate > 1.0e23)
2846                 mod->BSIM4pngate *= 1.0e-6;
2847             break;
2848         case BSIM4_MOD_PGAMMA1:
2849             mod->BSIM4pgamma1 = value->rValue;
2850             mod->BSIM4pgamma1Given = TRUE;
2851             break;
2852         case BSIM4_MOD_PGAMMA2:
2853             mod->BSIM4pgamma2 = value->rValue;
2854             mod->BSIM4pgamma2Given = TRUE;
2855             break;
2856         case BSIM4_MOD_PVBX:
2857             mod->BSIM4pvbx = value->rValue;
2858             mod->BSIM4pvbxGiven = TRUE;
2859             break;
2860         case BSIM4_MOD_PVBM:
2861             mod->BSIM4pvbm = value->rValue;
2862             mod->BSIM4pvbmGiven = TRUE;
2863             break;
2864         case BSIM4_MOD_PXT:
2865             mod->BSIM4pxt = value->rValue;
2866             mod->BSIM4pxtGiven = TRUE;
2867             break;
2868         case  BSIM4_MOD_PK1:
2869             mod->BSIM4pk1 = value->rValue;
2870             mod->BSIM4pk1Given = TRUE;
2871             break;
2872         case  BSIM4_MOD_PKT1:
2873             mod->BSIM4pkt1 = value->rValue;
2874             mod->BSIM4pkt1Given = TRUE;
2875             break;
2876         case  BSIM4_MOD_PKT1L:
2877             mod->BSIM4pkt1l = value->rValue;
2878             mod->BSIM4pkt1lGiven = TRUE;
2879             break;
2880         case  BSIM4_MOD_PKT2:
2881             mod->BSIM4pkt2 = value->rValue;
2882             mod->BSIM4pkt2Given = TRUE;
2883             break;
2884         case  BSIM4_MOD_PK2:
2885             mod->BSIM4pk2 = value->rValue;
2886             mod->BSIM4pk2Given = TRUE;
2887             break;
2888         case  BSIM4_MOD_PK3:
2889             mod->BSIM4pk3 = value->rValue;
2890             mod->BSIM4pk3Given = TRUE;
2891             break;
2892         case  BSIM4_MOD_PK3B:
2893             mod->BSIM4pk3b = value->rValue;
2894             mod->BSIM4pk3bGiven = TRUE;
2895             break;
2896         case  BSIM4_MOD_PLPE0:
2897             mod->BSIM4plpe0 = value->rValue;
2898             mod->BSIM4plpe0Given = TRUE;
2899             break;
2900         case  BSIM4_MOD_PLPEB:
2901             mod->BSIM4plpeb = value->rValue;
2902             mod->BSIM4plpebGiven = TRUE;
2903             break;
2904         case  BSIM4_MOD_PDVTP0:
2905             mod->BSIM4pdvtp0 = value->rValue;
2906             mod->BSIM4pdvtp0Given = TRUE;
2907             break;
2908         case  BSIM4_MOD_PDVTP1:
2909             mod->BSIM4pdvtp1 = value->rValue;
2910             mod->BSIM4pdvtp1Given = TRUE;
2911             break;
2912         case  BSIM4_MOD_PDVTP2:     /* New DIBL/Rout */
2913             mod->BSIM4pdvtp2 = value->rValue;
2914             mod->BSIM4pdvtp2Given = TRUE;
2915             break;
2916         case  BSIM4_MOD_PDVTP3:
2917             mod->BSIM4pdvtp3 = value->rValue;
2918             mod->BSIM4pdvtp3Given = TRUE;
2919             break;
2920         case  BSIM4_MOD_PDVTP4:
2921             mod->BSIM4pdvtp4 = value->rValue;
2922             mod->BSIM4pdvtp4Given = TRUE;
2923             break;
2924         case  BSIM4_MOD_PDVTP5:
2925             mod->BSIM4pdvtp5 = value->rValue;
2926             mod->BSIM4pdvtp5Given = TRUE;
2927             break;
2928         case  BSIM4_MOD_PW0:
2929             mod->BSIM4pw0 = value->rValue;
2930             mod->BSIM4pw0Given = TRUE;
2931             break;
2932         case  BSIM4_MOD_PDVT0:
2933             mod->BSIM4pdvt0 = value->rValue;
2934             mod->BSIM4pdvt0Given = TRUE;
2935             break;
2936         case  BSIM4_MOD_PDVT1:
2937             mod->BSIM4pdvt1 = value->rValue;
2938             mod->BSIM4pdvt1Given = TRUE;
2939             break;
2940         case  BSIM4_MOD_PDVT2:
2941             mod->BSIM4pdvt2 = value->rValue;
2942             mod->BSIM4pdvt2Given = TRUE;
2943             break;
2944         case  BSIM4_MOD_PDVT0W:
2945             mod->BSIM4pdvt0w = value->rValue;
2946             mod->BSIM4pdvt0wGiven = TRUE;
2947             break;
2948         case  BSIM4_MOD_PDVT1W:
2949             mod->BSIM4pdvt1w = value->rValue;
2950             mod->BSIM4pdvt1wGiven = TRUE;
2951             break;
2952         case  BSIM4_MOD_PDVT2W:
2953             mod->BSIM4pdvt2w = value->rValue;
2954             mod->BSIM4pdvt2wGiven = TRUE;
2955             break;
2956         case  BSIM4_MOD_PDROUT:
2957             mod->BSIM4pdrout = value->rValue;
2958             mod->BSIM4pdroutGiven = TRUE;
2959             break;
2960         case  BSIM4_MOD_PDSUB:
2961             mod->BSIM4pdsub = value->rValue;
2962             mod->BSIM4pdsubGiven = TRUE;
2963             break;
2964         case BSIM4_MOD_PVTH0:
2965             mod->BSIM4pvth0 = value->rValue;
2966             mod->BSIM4pvth0Given = TRUE;
2967             break;
2968         case BSIM4_MOD_PUA:
2969             mod->BSIM4pua = value->rValue;
2970             mod->BSIM4puaGiven = TRUE;
2971             break;
2972         case BSIM4_MOD_PUA1:
2973             mod->BSIM4pua1 = value->rValue;
2974             mod->BSIM4pua1Given = TRUE;
2975             break;
2976         case BSIM4_MOD_PUB:
2977             mod->BSIM4pub = value->rValue;
2978             mod->BSIM4pubGiven = TRUE;
2979             break;
2980         case BSIM4_MOD_PUB1:
2981             mod->BSIM4pub1 = value->rValue;
2982             mod->BSIM4pub1Given = TRUE;
2983             break;
2984         case BSIM4_MOD_PUC:
2985             mod->BSIM4puc = value->rValue;
2986             mod->BSIM4pucGiven = TRUE;
2987             break;
2988         case BSIM4_MOD_PUC1:
2989             mod->BSIM4puc1 = value->rValue;
2990             mod->BSIM4puc1Given = TRUE;
2991             break;
2992         case  BSIM4_MOD_PU0 :
2993             mod->BSIM4pu0 = value->rValue;
2994             mod->BSIM4pu0Given = TRUE;
2995             break;
2996         case  BSIM4_MOD_PUTE :
2997             mod->BSIM4pute = value->rValue;
2998             mod->BSIM4puteGiven = TRUE;
2999             break;
3000                  case  BSIM4_MOD_PUCSTE :
3001             mod->BSIM4pucste = value->rValue;
3002             mod->BSIM4pucsteGiven = TRUE;
3003             break;
3004         case BSIM4_MOD_PVOFF:
3005             mod->BSIM4pvoff = value->rValue;
3006             mod->BSIM4pvoffGiven = TRUE;
3007             break;
3008         case BSIM4_MOD_PTVOFF:
3009             mod->BSIM4ptvoff = value->rValue;
3010             mod->BSIM4ptvoffGiven = TRUE;
3011             break;
3012         case BSIM4_MOD_PTNFACTOR:           /* v4.7 temp dep of leakage current  */
3013             mod->BSIM4ptnfactor = value->rValue;
3014             mod->BSIM4ptnfactorGiven = TRUE;
3015             break;
3016         case BSIM4_MOD_PTETA0:                /* v4.7 temp dep of leakage current  */
3017             mod->BSIM4pteta0 = value->rValue;
3018             mod->BSIM4pteta0Given = TRUE;
3019             break;
3020         case BSIM4_MOD_PTVOFFCV:        /* v4.7 temp dep of leakage current  */
3021             mod->BSIM4ptvoffcv = value->rValue;
3022             mod->BSIM4ptvoffcvGiven = TRUE;
3023             break;
3024         case BSIM4_MOD_PMINV:
3025             mod->BSIM4pminv = value->rValue;
3026             mod->BSIM4pminvGiven = TRUE;
3027             break;
3028         case BSIM4_MOD_PMINVCV:
3029             mod->BSIM4pminvcv = value->rValue;
3030             mod->BSIM4pminvcvGiven = TRUE;
3031             break;
3032         case BSIM4_MOD_PFPROUT:
3033             mod->BSIM4pfprout = value->rValue;
3034             mod->BSIM4pfproutGiven = TRUE;
3035             break;
3036         case BSIM4_MOD_PPDITS:
3037             mod->BSIM4ppdits = value->rValue;
3038             mod->BSIM4ppditsGiven = TRUE;
3039             break;
3040         case BSIM4_MOD_PPDITSD:
3041             mod->BSIM4ppditsd = value->rValue;
3042             mod->BSIM4ppditsdGiven = TRUE;
3043             break;
3044         case  BSIM4_MOD_PDELTA :
3045             mod->BSIM4pdelta = value->rValue;
3046             mod->BSIM4pdeltaGiven = TRUE;
3047             break;
3048         case BSIM4_MOD_PRDSW:
3049             mod->BSIM4prdsw = value->rValue;
3050             mod->BSIM4prdswGiven = TRUE;
3051             break;
3052         case BSIM4_MOD_PRDW:
3053             mod->BSIM4prdw = value->rValue;
3054             mod->BSIM4prdwGiven = TRUE;
3055             break;
3056         case BSIM4_MOD_PRSW:
3057             mod->BSIM4prsw = value->rValue;
3058             mod->BSIM4prswGiven = TRUE;
3059             break;
3060         case BSIM4_MOD_PPRWB:
3061             mod->BSIM4pprwb = value->rValue;
3062             mod->BSIM4pprwbGiven = TRUE;
3063             break;
3064         case BSIM4_MOD_PPRWG:
3065             mod->BSIM4pprwg = value->rValue;
3066             mod->BSIM4pprwgGiven = TRUE;
3067             break;
3068         case BSIM4_MOD_PPRT:
3069             mod->BSIM4pprt = value->rValue;
3070             mod->BSIM4pprtGiven = TRUE;
3071             break;
3072         case BSIM4_MOD_PETA0:
3073             mod->BSIM4peta0 = value->rValue;
3074             mod->BSIM4peta0Given = TRUE;
3075             break;
3076         case BSIM4_MOD_PETAB:
3077             mod->BSIM4petab = value->rValue;
3078             mod->BSIM4petabGiven = TRUE;
3079             break;
3080         case BSIM4_MOD_PPCLM:
3081             mod->BSIM4ppclm = value->rValue;
3082             mod->BSIM4ppclmGiven = TRUE;
3083             break;
3084         case BSIM4_MOD_PPDIBL1:
3085             mod->BSIM4ppdibl1 = value->rValue;
3086             mod->BSIM4ppdibl1Given = TRUE;
3087             break;
3088         case BSIM4_MOD_PPDIBL2:
3089             mod->BSIM4ppdibl2 = value->rValue;
3090             mod->BSIM4ppdibl2Given = TRUE;
3091             break;
3092         case BSIM4_MOD_PPDIBLB:
3093             mod->BSIM4ppdiblb = value->rValue;
3094             mod->BSIM4ppdiblbGiven = TRUE;
3095             break;
3096         case BSIM4_MOD_PPSCBE1:
3097             mod->BSIM4ppscbe1 = value->rValue;
3098             mod->BSIM4ppscbe1Given = TRUE;
3099             break;
3100         case BSIM4_MOD_PPSCBE2:
3101             mod->BSIM4ppscbe2 = value->rValue;
3102             mod->BSIM4ppscbe2Given = TRUE;
3103             break;
3104         case BSIM4_MOD_PPVAG:
3105             mod->BSIM4ppvag = value->rValue;
3106             mod->BSIM4ppvagGiven = TRUE;
3107             break;
3108         case  BSIM4_MOD_PWR :
3109             mod->BSIM4pwr = value->rValue;
3110             mod->BSIM4pwrGiven = TRUE;
3111             break;
3112         case  BSIM4_MOD_PDWG :
3113             mod->BSIM4pdwg = value->rValue;
3114             mod->BSIM4pdwgGiven = TRUE;
3115             break;
3116         case  BSIM4_MOD_PDWB :
3117             mod->BSIM4pdwb = value->rValue;
3118             mod->BSIM4pdwbGiven = TRUE;
3119             break;
3120         case  BSIM4_MOD_PB0 :
3121             mod->BSIM4pb0 = value->rValue;
3122             mod->BSIM4pb0Given = TRUE;
3123             break;
3124         case  BSIM4_MOD_PB1 :
3125             mod->BSIM4pb1 = value->rValue;
3126             mod->BSIM4pb1Given = TRUE;
3127             break;
3128         case  BSIM4_MOD_PALPHA0 :
3129             mod->BSIM4palpha0 = value->rValue;
3130             mod->BSIM4palpha0Given = TRUE;
3131             break;
3132         case  BSIM4_MOD_PALPHA1 :
3133             mod->BSIM4palpha1 = value->rValue;
3134             mod->BSIM4palpha1Given = TRUE;
3135             break;
3136         case  BSIM4_MOD_PBETA0 :
3137             mod->BSIM4pbeta0 = value->rValue;
3138             mod->BSIM4pbeta0Given = TRUE;
3139             break;
3140         case  BSIM4_MOD_PPHIN :
3141             mod->BSIM4pphin = value->rValue;
3142             mod->BSIM4pphinGiven = TRUE;
3143             break;
3144         case  BSIM4_MOD_PAGIDL :
3145             mod->BSIM4pagidl = value->rValue;
3146             mod->BSIM4pagidlGiven = TRUE;
3147             break;
3148         case  BSIM4_MOD_PBGIDL :
3149             mod->BSIM4pbgidl = value->rValue;
3150             mod->BSIM4pbgidlGiven = TRUE;
3151             break;
3152         case  BSIM4_MOD_PCGIDL :
3153             mod->BSIM4pcgidl = value->rValue;
3154             mod->BSIM4pcgidlGiven = TRUE;
3155             break;
3156         case  BSIM4_MOD_PEGIDL :
3157             mod->BSIM4pegidl = value->rValue;
3158             mod->BSIM4pegidlGiven = TRUE;
3159             break;
3160         case  BSIM4_MOD_PFGIDL :                        /* v4.7 New GIDL/GISL */
3161             mod->BSIM4pfgidl = value->rValue;
3162             mod->BSIM4pfgidlGiven = TRUE;
3163             break;
3164         case  BSIM4_MOD_PKGIDL :                        /* v4.7 New GIDL/GISL */
3165             mod->BSIM4pkgidl = value->rValue;
3166             mod->BSIM4pkgidlGiven = TRUE;
3167             break;
3168         case  BSIM4_MOD_PRGIDL :                        /* v4.7 New GIDL/GISL */
3169             mod->BSIM4prgidl = value->rValue;
3170             mod->BSIM4prgidlGiven = TRUE;
3171             break;
3172         case  BSIM4_MOD_PAGISL :
3173             mod->BSIM4pagisl = value->rValue;
3174             mod->BSIM4pagislGiven = TRUE;
3175             break;
3176         case  BSIM4_MOD_PBGISL :
3177             mod->BSIM4pbgisl = value->rValue;
3178             mod->BSIM4pbgislGiven = TRUE;
3179             break;
3180         case  BSIM4_MOD_PCGISL :
3181             mod->BSIM4pcgisl = value->rValue;
3182             mod->BSIM4pcgislGiven = TRUE;
3183             break;
3184         case  BSIM4_MOD_PEGISL :
3185             mod->BSIM4pegisl = value->rValue;
3186             mod->BSIM4pegislGiven = TRUE;
3187             break;
3188         case  BSIM4_MOD_PFGISL :                        /* v4.7 New GIDL/GISL */
3189             mod->BSIM4pfgisl = value->rValue;
3190             mod->BSIM4pfgislGiven = TRUE;
3191             break;
3192         case  BSIM4_MOD_PKGISL :                        /* v4.7 New GIDL/GISL */
3193             mod->BSIM4pkgisl = value->rValue;
3194             mod->BSIM4pkgislGiven = TRUE;
3195             break;
3196         case  BSIM4_MOD_PRGISL :                        /* v4.7 New GIDL/GISL */
3197             mod->BSIM4prgisl = value->rValue;
3198             mod->BSIM4prgislGiven = TRUE;
3199             break;
3200         case  BSIM4_MOD_PAIGC :
3201             mod->BSIM4paigc = value->rValue;
3202             mod->BSIM4paigcGiven = TRUE;
3203             break;
3204         case  BSIM4_MOD_PBIGC :
3205             mod->BSIM4pbigc = value->rValue;
3206             mod->BSIM4pbigcGiven = TRUE;
3207             break;
3208         case  BSIM4_MOD_PCIGC :
3209             mod->BSIM4pcigc = value->rValue;
3210             mod->BSIM4pcigcGiven = TRUE;
3211             break;
3212         case  BSIM4_MOD_PAIGSD :
3213             mod->BSIM4paigsd = value->rValue;
3214             mod->BSIM4paigsdGiven = TRUE;
3215             break;
3216         case  BSIM4_MOD_PBIGSD :
3217             mod->BSIM4pbigsd = value->rValue;
3218             mod->BSIM4pbigsdGiven = TRUE;
3219             break;
3220         case  BSIM4_MOD_PCIGSD :
3221             mod->BSIM4pcigsd = value->rValue;
3222             mod->BSIM4pcigsdGiven = TRUE;
3223             break;
3224         case  BSIM4_MOD_PAIGS :
3225             mod->BSIM4paigs = value->rValue;
3226             mod->BSIM4paigsGiven = TRUE;
3227             break;
3228         case  BSIM4_MOD_PBIGS :
3229             mod->BSIM4pbigs = value->rValue;
3230             mod->BSIM4pbigsGiven = TRUE;
3231             break;
3232         case  BSIM4_MOD_PCIGS :
3233             mod->BSIM4pcigs = value->rValue;
3234             mod->BSIM4pcigsGiven = TRUE;
3235             break;
3236         case  BSIM4_MOD_PAIGD :
3237             mod->BSIM4paigd = value->rValue;
3238             mod->BSIM4paigdGiven = TRUE;
3239             break;
3240         case  BSIM4_MOD_PBIGD :
3241             mod->BSIM4pbigd = value->rValue;
3242             mod->BSIM4pbigdGiven = TRUE;
3243             break;
3244         case  BSIM4_MOD_PCIGD :
3245             mod->BSIM4pcigd = value->rValue;
3246             mod->BSIM4pcigdGiven = TRUE;
3247             break;
3248         case  BSIM4_MOD_PAIGBACC :
3249             mod->BSIM4paigbacc = value->rValue;
3250             mod->BSIM4paigbaccGiven = TRUE;
3251             break;
3252         case  BSIM4_MOD_PBIGBACC :
3253             mod->BSIM4pbigbacc = value->rValue;
3254             mod->BSIM4pbigbaccGiven = TRUE;
3255             break;
3256         case  BSIM4_MOD_PCIGBACC :
3257             mod->BSIM4pcigbacc = value->rValue;
3258             mod->BSIM4pcigbaccGiven = TRUE;
3259             break;
3260         case  BSIM4_MOD_PAIGBINV :
3261             mod->BSIM4paigbinv = value->rValue;
3262             mod->BSIM4paigbinvGiven = TRUE;
3263             break;
3264         case  BSIM4_MOD_PBIGBINV :
3265             mod->BSIM4pbigbinv = value->rValue;
3266             mod->BSIM4pbigbinvGiven = TRUE;
3267             break;
3268         case  BSIM4_MOD_PCIGBINV :
3269             mod->BSIM4pcigbinv = value->rValue;
3270             mod->BSIM4pcigbinvGiven = TRUE;
3271             break;
3272         case  BSIM4_MOD_PNIGC :
3273             mod->BSIM4pnigc = value->rValue;
3274             mod->BSIM4pnigcGiven = TRUE;
3275             break;
3276         case  BSIM4_MOD_PNIGBINV :
3277             mod->BSIM4pnigbinv = value->rValue;
3278             mod->BSIM4pnigbinvGiven = TRUE;
3279             break;
3280         case  BSIM4_MOD_PNIGBACC :
3281             mod->BSIM4pnigbacc = value->rValue;
3282             mod->BSIM4pnigbaccGiven = TRUE;
3283             break;
3284         case  BSIM4_MOD_PNTOX :
3285             mod->BSIM4pntox = value->rValue;
3286             mod->BSIM4pntoxGiven = TRUE;
3287             break;
3288         case  BSIM4_MOD_PEIGBINV :
3289             mod->BSIM4peigbinv = value->rValue;
3290             mod->BSIM4peigbinvGiven = TRUE;
3291             break;
3292         case  BSIM4_MOD_PPIGCD :
3293             mod->BSIM4ppigcd = value->rValue;
3294             mod->BSIM4ppigcdGiven = TRUE;
3295             break;
3296         case  BSIM4_MOD_PPOXEDGE :
3297             mod->BSIM4ppoxedge = value->rValue;
3298             mod->BSIM4ppoxedgeGiven = TRUE;
3299             break;
3300         case  BSIM4_MOD_PXRCRG1 :
3301             mod->BSIM4pxrcrg1 = value->rValue;
3302             mod->BSIM4pxrcrg1Given = TRUE;
3303             break;
3304         case  BSIM4_MOD_PXRCRG2 :
3305             mod->BSIM4pxrcrg2 = value->rValue;
3306             mod->BSIM4pxrcrg2Given = TRUE;
3307             break;
3308         case  BSIM4_MOD_PLAMBDA :
3309             mod->BSIM4plambda = value->rValue;
3310             mod->BSIM4plambdaGiven = TRUE;
3311             break;
3312         case  BSIM4_MOD_PVTL :
3313             mod->BSIM4pvtl = value->rValue;
3314             mod->BSIM4pvtlGiven = TRUE;
3315             break;
3316         case  BSIM4_MOD_PXN:
3317             mod->BSIM4pxn = value->rValue;
3318             mod->BSIM4pxnGiven = TRUE;
3319             break;
3320         case  BSIM4_MOD_PVFBSDOFF:
3321             mod->BSIM4pvfbsdoff = value->rValue;
3322             mod->BSIM4pvfbsdoffGiven = TRUE;
3323             break;
3324         case  BSIM4_MOD_PTVFBSDOFF:
3325             mod->BSIM4ptvfbsdoff = value->rValue;
3326             mod->BSIM4ptvfbsdoffGiven = TRUE;
3327             break;
3328         case  BSIM4_MOD_PEU :
3329             mod->BSIM4peu = value->rValue;
3330             mod->BSIM4peuGiven = TRUE;
3331             break;
3332                 case  BSIM4_MOD_PUCS :
3333             mod->BSIM4pucs = value->rValue;
3334             mod->BSIM4pucsGiven = TRUE;
3335             break;
3336         case  BSIM4_MOD_PVFB :
3337             mod->BSIM4pvfb = value->rValue;
3338             mod->BSIM4pvfbGiven = TRUE;
3339             break;
3340         case  BSIM4_MOD_PCGSL :
3341             mod->BSIM4pcgsl = value->rValue;
3342             mod->BSIM4pcgslGiven = TRUE;
3343             break;
3344         case  BSIM4_MOD_PCGDL :
3345             mod->BSIM4pcgdl = value->rValue;
3346             mod->BSIM4pcgdlGiven = TRUE;
3347             break;
3348         case  BSIM4_MOD_PCKAPPAS :
3349             mod->BSIM4pckappas = value->rValue;
3350             mod->BSIM4pckappasGiven = TRUE;
3351             break;
3352         case  BSIM4_MOD_PCKAPPAD :
3353             mod->BSIM4pckappad = value->rValue;
3354             mod->BSIM4pckappadGiven = TRUE;
3355             break;
3356         case  BSIM4_MOD_PCF :
3357             mod->BSIM4pcf = value->rValue;
3358             mod->BSIM4pcfGiven = TRUE;
3359             break;
3360         case  BSIM4_MOD_PCLC :
3361             mod->BSIM4pclc = value->rValue;
3362             mod->BSIM4pclcGiven = TRUE;
3363             break;
3364         case  BSIM4_MOD_PCLE :
3365             mod->BSIM4pcle = value->rValue;
3366             mod->BSIM4pcleGiven = TRUE;
3367             break;
3368         case  BSIM4_MOD_PVFBCV :
3369             mod->BSIM4pvfbcv = value->rValue;
3370             mod->BSIM4pvfbcvGiven = TRUE;
3371             break;
3372         case  BSIM4_MOD_PACDE :
3373             mod->BSIM4pacde = value->rValue;
3374             mod->BSIM4pacdeGiven = TRUE;
3375             break;
3376         case  BSIM4_MOD_PMOIN :
3377             mod->BSIM4pmoin = value->rValue;
3378             mod->BSIM4pmoinGiven = TRUE;
3379             break;
3380         case  BSIM4_MOD_PNOFF :
3381             mod->BSIM4pnoff = value->rValue;
3382             mod->BSIM4pnoffGiven = TRUE;
3383             break;
3384         case  BSIM4_MOD_PVOFFCV :
3385             mod->BSIM4pvoffcv = value->rValue;
3386             mod->BSIM4pvoffcvGiven = TRUE;
3387             break;
3388 
3389         case  BSIM4_MOD_TNOM :
3390             mod->BSIM4tnom = value->rValue + CONSTCtoK;
3391             mod->BSIM4tnomGiven = TRUE;
3392             break;
3393         case  BSIM4_MOD_CGSO :
3394             mod->BSIM4cgso = value->rValue;
3395             mod->BSIM4cgsoGiven = TRUE;
3396             break;
3397         case  BSIM4_MOD_CGDO :
3398             mod->BSIM4cgdo = value->rValue;
3399             mod->BSIM4cgdoGiven = TRUE;
3400             break;
3401         case  BSIM4_MOD_CGBO :
3402             mod->BSIM4cgbo = value->rValue;
3403             mod->BSIM4cgboGiven = TRUE;
3404             break;
3405         case  BSIM4_MOD_XPART :
3406             mod->BSIM4xpart = value->rValue;
3407             mod->BSIM4xpartGiven = TRUE;
3408             break;
3409         case  BSIM4_MOD_RSH :
3410             mod->BSIM4sheetResistance = value->rValue;
3411             mod->BSIM4sheetResistanceGiven = TRUE;
3412             break;
3413         case  BSIM4_MOD_JSS :
3414             mod->BSIM4SjctSatCurDensity = value->rValue;
3415             mod->BSIM4SjctSatCurDensityGiven = TRUE;
3416             break;
3417         case  BSIM4_MOD_JSWS :
3418             mod->BSIM4SjctSidewallSatCurDensity = value->rValue;
3419             mod->BSIM4SjctSidewallSatCurDensityGiven = TRUE;
3420             break;
3421         case  BSIM4_MOD_JSWGS :
3422             mod->BSIM4SjctGateSidewallSatCurDensity = value->rValue;
3423             mod->BSIM4SjctGateSidewallSatCurDensityGiven = TRUE;
3424             break;
3425         case  BSIM4_MOD_PBS :
3426             mod->BSIM4SbulkJctPotential = value->rValue;
3427             mod->BSIM4SbulkJctPotentialGiven = TRUE;
3428             break;
3429         case  BSIM4_MOD_MJS :
3430             mod->BSIM4SbulkJctBotGradingCoeff = value->rValue;
3431             mod->BSIM4SbulkJctBotGradingCoeffGiven = TRUE;
3432             break;
3433         case  BSIM4_MOD_PBSWS :
3434             mod->BSIM4SsidewallJctPotential = value->rValue;
3435             mod->BSIM4SsidewallJctPotentialGiven = TRUE;
3436             break;
3437         case  BSIM4_MOD_MJSWS :
3438             mod->BSIM4SbulkJctSideGradingCoeff = value->rValue;
3439             mod->BSIM4SbulkJctSideGradingCoeffGiven = TRUE;
3440             break;
3441         case  BSIM4_MOD_CJS :
3442             mod->BSIM4SunitAreaJctCap = value->rValue;
3443             mod->BSIM4SunitAreaJctCapGiven = TRUE;
3444             break;
3445         case  BSIM4_MOD_CJSWS :
3446             mod->BSIM4SunitLengthSidewallJctCap = value->rValue;
3447             mod->BSIM4SunitLengthSidewallJctCapGiven = TRUE;
3448             break;
3449         case  BSIM4_MOD_NJS :
3450             mod->BSIM4SjctEmissionCoeff = value->rValue;
3451             mod->BSIM4SjctEmissionCoeffGiven = TRUE;
3452             break;
3453         case  BSIM4_MOD_PBSWGS :
3454             mod->BSIM4SGatesidewallJctPotential = value->rValue;
3455             mod->BSIM4SGatesidewallJctPotentialGiven = TRUE;
3456             break;
3457         case  BSIM4_MOD_MJSWGS :
3458             mod->BSIM4SbulkJctGateSideGradingCoeff = value->rValue;
3459             mod->BSIM4SbulkJctGateSideGradingCoeffGiven = TRUE;
3460             break;
3461         case  BSIM4_MOD_CJSWGS :
3462             mod->BSIM4SunitLengthGateSidewallJctCap = value->rValue;
3463             mod->BSIM4SunitLengthGateSidewallJctCapGiven = TRUE;
3464             break;
3465         case  BSIM4_MOD_XTIS :
3466             mod->BSIM4SjctTempExponent = value->rValue;
3467             mod->BSIM4SjctTempExponentGiven = TRUE;
3468             break;
3469         case  BSIM4_MOD_JSD :
3470             mod->BSIM4DjctSatCurDensity = value->rValue;
3471             mod->BSIM4DjctSatCurDensityGiven = TRUE;
3472             break;
3473         case  BSIM4_MOD_JSWD :
3474             mod->BSIM4DjctSidewallSatCurDensity = value->rValue;
3475             mod->BSIM4DjctSidewallSatCurDensityGiven = TRUE;
3476             break;
3477         case  BSIM4_MOD_JSWGD :
3478             mod->BSIM4DjctGateSidewallSatCurDensity = value->rValue;
3479             mod->BSIM4DjctGateSidewallSatCurDensityGiven = TRUE;
3480             break;
3481         case  BSIM4_MOD_PBD :
3482             mod->BSIM4DbulkJctPotential = value->rValue;
3483             mod->BSIM4DbulkJctPotentialGiven = TRUE;
3484             break;
3485         case  BSIM4_MOD_MJD :
3486             mod->BSIM4DbulkJctBotGradingCoeff = value->rValue;
3487             mod->BSIM4DbulkJctBotGradingCoeffGiven = TRUE;
3488             break;
3489         case  BSIM4_MOD_PBSWD :
3490             mod->BSIM4DsidewallJctPotential = value->rValue;
3491             mod->BSIM4DsidewallJctPotentialGiven = TRUE;
3492             break;
3493         case  BSIM4_MOD_MJSWD :
3494             mod->BSIM4DbulkJctSideGradingCoeff = value->rValue;
3495             mod->BSIM4DbulkJctSideGradingCoeffGiven = TRUE;
3496             break;
3497         case  BSIM4_MOD_CJD :
3498             mod->BSIM4DunitAreaJctCap = value->rValue;
3499             mod->BSIM4DunitAreaJctCapGiven = TRUE;
3500             break;
3501         case  BSIM4_MOD_CJSWD :
3502             mod->BSIM4DunitLengthSidewallJctCap = value->rValue;
3503             mod->BSIM4DunitLengthSidewallJctCapGiven = TRUE;
3504             break;
3505         case  BSIM4_MOD_NJD :
3506             mod->BSIM4DjctEmissionCoeff = value->rValue;
3507             mod->BSIM4DjctEmissionCoeffGiven = TRUE;
3508             break;
3509         case  BSIM4_MOD_PBSWGD :
3510             mod->BSIM4DGatesidewallJctPotential = value->rValue;
3511             mod->BSIM4DGatesidewallJctPotentialGiven = TRUE;
3512             break;
3513         case  BSIM4_MOD_MJSWGD :
3514             mod->BSIM4DbulkJctGateSideGradingCoeff = value->rValue;
3515             mod->BSIM4DbulkJctGateSideGradingCoeffGiven = TRUE;
3516             break;
3517         case  BSIM4_MOD_CJSWGD :
3518             mod->BSIM4DunitLengthGateSidewallJctCap = value->rValue;
3519             mod->BSIM4DunitLengthGateSidewallJctCapGiven = TRUE;
3520             break;
3521         case  BSIM4_MOD_XTID :
3522             mod->BSIM4DjctTempExponent = value->rValue;
3523             mod->BSIM4DjctTempExponentGiven = TRUE;
3524             break;
3525         case  BSIM4_MOD_LINT :
3526             mod->BSIM4Lint = value->rValue;
3527             mod->BSIM4LintGiven = TRUE;
3528             break;
3529         case  BSIM4_MOD_LL :
3530             mod->BSIM4Ll = value->rValue;
3531             mod->BSIM4LlGiven = TRUE;
3532             break;
3533         case  BSIM4_MOD_LLC :
3534             mod->BSIM4Llc = value->rValue;
3535             mod->BSIM4LlcGiven = TRUE;
3536             break;
3537         case  BSIM4_MOD_LLN :
3538             mod->BSIM4Lln = value->rValue;
3539             mod->BSIM4LlnGiven = TRUE;
3540             break;
3541         case  BSIM4_MOD_LW :
3542             mod->BSIM4Lw = value->rValue;
3543             mod->BSIM4LwGiven = TRUE;
3544             break;
3545         case  BSIM4_MOD_LWC :
3546             mod->BSIM4Lwc = value->rValue;
3547             mod->BSIM4LwcGiven = TRUE;
3548             break;
3549         case  BSIM4_MOD_LWN :
3550             mod->BSIM4Lwn = value->rValue;
3551             mod->BSIM4LwnGiven = TRUE;
3552             break;
3553         case  BSIM4_MOD_LWL :
3554             mod->BSIM4Lwl = value->rValue;
3555             mod->BSIM4LwlGiven = TRUE;
3556             break;
3557         case  BSIM4_MOD_LWLC :
3558             mod->BSIM4Lwlc = value->rValue;
3559             mod->BSIM4LwlcGiven = TRUE;
3560             break;
3561         case  BSIM4_MOD_LMIN :
3562             mod->BSIM4Lmin = value->rValue;
3563             mod->BSIM4LminGiven = TRUE;
3564             break;
3565         case  BSIM4_MOD_LMAX :
3566             mod->BSIM4Lmax = value->rValue;
3567             mod->BSIM4LmaxGiven = TRUE;
3568             break;
3569         case  BSIM4_MOD_WINT :
3570             mod->BSIM4Wint = value->rValue;
3571             mod->BSIM4WintGiven = TRUE;
3572             break;
3573         case  BSIM4_MOD_WL :
3574             mod->BSIM4Wl = value->rValue;
3575             mod->BSIM4WlGiven = TRUE;
3576             break;
3577         case  BSIM4_MOD_WLC :
3578             mod->BSIM4Wlc = value->rValue;
3579             mod->BSIM4WlcGiven = TRUE;
3580             break;
3581         case  BSIM4_MOD_WLN :
3582             mod->BSIM4Wln = value->rValue;
3583             mod->BSIM4WlnGiven = TRUE;
3584             break;
3585         case  BSIM4_MOD_WW :
3586             mod->BSIM4Ww = value->rValue;
3587             mod->BSIM4WwGiven = TRUE;
3588             break;
3589         case  BSIM4_MOD_WWC :
3590             mod->BSIM4Wwc = value->rValue;
3591             mod->BSIM4WwcGiven = TRUE;
3592             break;
3593         case  BSIM4_MOD_WWN :
3594             mod->BSIM4Wwn = value->rValue;
3595             mod->BSIM4WwnGiven = TRUE;
3596             break;
3597         case  BSIM4_MOD_WWL :
3598             mod->BSIM4Wwl = value->rValue;
3599             mod->BSIM4WwlGiven = TRUE;
3600             break;
3601         case  BSIM4_MOD_WWLC :
3602             mod->BSIM4Wwlc = value->rValue;
3603             mod->BSIM4WwlcGiven = TRUE;
3604             break;
3605         case  BSIM4_MOD_WMIN :
3606             mod->BSIM4Wmin = value->rValue;
3607             mod->BSIM4WminGiven = TRUE;
3608             break;
3609         case  BSIM4_MOD_WMAX :
3610             mod->BSIM4Wmax = value->rValue;
3611             mod->BSIM4WmaxGiven = TRUE;
3612             break;
3613 
3614         case  BSIM4_MOD_NOIA :
3615             mod->BSIM4oxideTrapDensityA = value->rValue;
3616             mod->BSIM4oxideTrapDensityAGiven = TRUE;
3617             break;
3618         case  BSIM4_MOD_NOIB :
3619             mod->BSIM4oxideTrapDensityB = value->rValue;
3620             mod->BSIM4oxideTrapDensityBGiven = TRUE;
3621             break;
3622         case  BSIM4_MOD_NOIC :
3623             mod->BSIM4oxideTrapDensityC = value->rValue;
3624             mod->BSIM4oxideTrapDensityCGiven = TRUE;
3625             break;
3626         case  BSIM4_MOD_EM :
3627             mod->BSIM4em = value->rValue;
3628             mod->BSIM4emGiven = TRUE;
3629             break;
3630         case  BSIM4_MOD_EF :
3631             mod->BSIM4ef = value->rValue;
3632             mod->BSIM4efGiven = TRUE;
3633             break;
3634         case  BSIM4_MOD_AF :
3635             mod->BSIM4af = value->rValue;
3636             mod->BSIM4afGiven = TRUE;
3637             break;
3638         case  BSIM4_MOD_KF :
3639             mod->BSIM4kf = value->rValue;
3640             mod->BSIM4kfGiven = TRUE;
3641             break;
3642 
3643         case BSIM4_MOD_VGS_MAX:
3644             mod->BSIM4vgsMax = value->rValue;
3645             mod->BSIM4vgsMaxGiven = TRUE;
3646             break;
3647         case BSIM4_MOD_VGD_MAX:
3648             mod->BSIM4vgdMax = value->rValue;
3649             mod->BSIM4vgdMaxGiven = TRUE;
3650             break;
3651         case BSIM4_MOD_VGB_MAX:
3652             mod->BSIM4vgbMax = value->rValue;
3653             mod->BSIM4vgbMaxGiven = TRUE;
3654             break;
3655         case BSIM4_MOD_VDS_MAX:
3656             mod->BSIM4vdsMax = value->rValue;
3657             mod->BSIM4vdsMaxGiven = TRUE;
3658             break;
3659         case BSIM4_MOD_VBS_MAX:
3660             mod->BSIM4vbsMax = value->rValue;
3661             mod->BSIM4vbsMaxGiven = TRUE;
3662             break;
3663         case BSIM4_MOD_VBD_MAX:
3664             mod->BSIM4vbdMax = value->rValue;
3665             mod->BSIM4vbdMaxGiven = TRUE;
3666             break;
3667         case BSIM4_MOD_VGSR_MAX:
3668             mod->BSIM4vgsrMax = value->rValue;
3669             mod->BSIM4vgsrMaxGiven = TRUE;
3670             break;
3671         case BSIM4_MOD_VGDR_MAX:
3672             mod->BSIM4vgdrMax = value->rValue;
3673             mod->BSIM4vgdrMaxGiven = TRUE;
3674             break;
3675         case BSIM4_MOD_VGBR_MAX:
3676             mod->BSIM4vgbrMax = value->rValue;
3677             mod->BSIM4vgbrMaxGiven = TRUE;
3678             break;
3679         case BSIM4_MOD_VBSR_MAX:
3680             mod->BSIM4vbsrMax = value->rValue;
3681             mod->BSIM4vbsrMaxGiven = TRUE;
3682             break;
3683         case BSIM4_MOD_VBDR_MAX:
3684             mod->BSIM4vbdrMax = value->rValue;
3685             mod->BSIM4vbdrMaxGiven = TRUE;
3686             break;
3687 
3688         case  BSIM4_MOD_NMOS  :
3689             if(value->iValue) {
3690                 mod->BSIM4type = 1;
3691                 mod->BSIM4typeGiven = TRUE;
3692             }
3693             break;
3694         case  BSIM4_MOD_PMOS  :
3695             if(value->iValue) {
3696                 mod->BSIM4type = - 1;
3697                 mod->BSIM4typeGiven = TRUE;
3698             }
3699             break;
3700         default:
3701             return(E_BADPARM);
3702     }
3703     return(OK);
3704 }
3705 
3706 
3707