/* ******************************************************************************
   *  BSIM4 4.8.1 released by Chetan Kumar Dabhi 2/15/2017                      *
   *  BSIM4 Model Equations                                                     *
   ******************************************************************************

   ******************************************************************************
   *  Copyright 2017 Regents of the University of California.                   *
   *  All rights reserved.                                                      *
   *                                                                            *
   *  Project Director: Prof. Chenming Hu.                                      *
   *  Authors: Gary W. Ng, Weidong Liu, Xuemei Xi, Mohan Dunga, Wenwei Yang     *
   *           Ali Niknejad, Shivendra Singh Parihar, Chetan Kumar Dabhi        *
   *           Yogesh Singh Chauhan, Sayeef Salahuddin, Chenming Hu             *
   ******************************************************************************

   ******************************************************************************
   *                          CMC In-Code Statement                             *
   *                                                                            *
   *  The Developer agrees that the following statement will appear in the      *
   *  model code that has been adopted as a CMC Standard.                       *
   *                                                                            *
   *  Software is distributed as is, completely without warranty or service     *
   *  support. The University of California and its employees are not liable    *
   *  for the condition or performance of the software.                         *
   *                                                                            *
   *  The University of California owns the copyright and grants users a        *
   *  perpetual, irrevocable, worldwide, non-exclusive, royalty-free license    *
   *  with respect to the software as set forth below.                          *
   *                                                                            *
   *  The University of California hereby disclaims all implied warranties.     *
   *                                                                            *
   *  The University of California grants the users the right to modify,        *
   *  copy, and redistribute the software and documentation, both within        *
   *  the user's organization and externally, subject to the following          *
   *  restrictions:                                                             *
   *                                                                            *
   *  1. The users agree not to charge for the University of California code    *
   *     itself but may charge for additions, extensions, or support.           *
   *                                                                            *
   *  2. In any product based on the software, the users agree to               *
   *     acknowledge the University of California that developed the            *
   *     software. This acknowledgment shall appear in the product              *
   *     documentation.                                                         *
   *                                                                            *
   *  3. Redistributions to others of source code and documentation must        *
   *     retain the copyright notice, disclaimer, and list of conditions.       *
   *                                                                            *
   *  4. Redistributions to others in binary form must reproduce the            *
   *     copyright notice, disclaimer, and list of conditions in the            *
   *     documentation and/or other materials provided with the                 *
   *     distribution.                                                          *
   *                                                                            *
   *  Agreed to on ______Feb. 15, 2017______________                            *
   *                                                                            *
   *  By: ____University of California, Berkeley___                             *
   *      ____Chenming Hu__________________________                             *
   *      ____Professor in Graduate School ________                             *
   *                                                                            *
   ****************************************************************************** */

#ifndef BSIM4
#define BSIM4

#include "ngspice/ifsim.h"
#include "ngspice/gendefs.h"
#include "ngspice/cktdefs.h"
#include "ngspice/complex.h"
#include "ngspice/noisedef.h"

typedef struct sBSIM4instance
{

    struct GENinstance gen;

#define BSIM4modPtr(inst) ((struct sBSIM4model *)((inst)->gen.GENmodPtr))
#define BSIM4nextInstance(inst) ((struct sBSIM4instance *)((inst)->gen.GENnextInstance))
#define BSIM4name gen.GENname
#define BSIM4states gen.GENstate

    const int BSIM4dNode;
    const int BSIM4gNodeExt;
    const int BSIM4sNode;
    const int BSIM4bNode;
    int BSIM4dNodePrime;
    int BSIM4gNodePrime;
    int BSIM4gNodeMid;
    int BSIM4sNodePrime;
    int BSIM4bNodePrime;
    int BSIM4dbNode;
    int BSIM4sbNode;
    int BSIM4qNode;

    double BSIM4ueff;
    double BSIM4thetavth;
    double BSIM4von;
    double BSIM4vdsat;
    double BSIM4cgdo;
    double BSIM4qgdo;
    double BSIM4cgso;
    double BSIM4qgso;
    double BSIM4grbsb;
    double BSIM4grbdb;
    double BSIM4grbpb;
    double BSIM4grbps;
    double BSIM4grbpd;

    double BSIM4vjsmFwd;
    double BSIM4vjsmRev;
    double BSIM4vjdmFwd;
    double BSIM4vjdmRev;
    double BSIM4XExpBVS;
    double BSIM4XExpBVD;
    double BSIM4SslpFwd;
    double BSIM4SslpRev;
    double BSIM4DslpFwd;
    double BSIM4DslpRev;
    double BSIM4IVjsmFwd;
    double BSIM4IVjsmRev;
    double BSIM4IVjdmFwd;
    double BSIM4IVjdmRev;

    double BSIM4grgeltd;
    double BSIM4Pseff;
    double BSIM4Pdeff;
    double BSIM4Aseff;
    double BSIM4Adeff;

    double BSIM4l;
    double BSIM4w;
    double BSIM4drainArea;
    double BSIM4sourceArea;
    double BSIM4drainSquares;
    double BSIM4sourceSquares;
    double BSIM4drainPerimeter;
    double BSIM4sourcePerimeter;
    double BSIM4sourceConductance;
    double BSIM4drainConductance;
     /* stress effect instance param */
    double BSIM4sa;
    double BSIM4sb;
    double BSIM4sd;
    double BSIM4sca;
    double BSIM4scb;
    double BSIM4scc;
    double BSIM4sc;

    double BSIM4rbdb;
    double BSIM4rbsb;
    double BSIM4rbpb;
    double BSIM4rbps;
    double BSIM4rbpd;

    double BSIM4delvto;
    double BSIM4mulu0;
    int BSIM4wnflag;
    double BSIM4xgw;
    double BSIM4ngcon;

     /* added here to account stress effect instance dependence */
    double BSIM4u0temp;
    double BSIM4vsattemp;
    double BSIM4vth0;
    double BSIM4vfb;
    double BSIM4vfbzb;
    double BSIM4vtfbphi1;
    double BSIM4vtfbphi2;
    double BSIM4k2;
    double BSIM4vbsc;
    double BSIM4k2ox;
    double BSIM4eta0;
    double BSIM4toxp;
    double BSIM4coxp;

    double BSIM4icVDS;
    double BSIM4icVGS;
    double BSIM4icVBS;
    double BSIM4m;
    double BSIM4nf;
    int BSIM4off;
    int BSIM4mode;
    int BSIM4trnqsMod;
    int BSIM4acnqsMod;
    int BSIM4rbodyMod;
    int BSIM4rgateMod;
    int BSIM4geoMod;
    int BSIM4rgeoMod;
    int BSIM4min;


    /* OP point */
    double BSIM4Vgsteff;
    double BSIM4vgs_eff;
    double BSIM4vgd_eff;
    double BSIM4dvgs_eff_dvg;
    double BSIM4dvgd_eff_dvg;
    double BSIM4Vdseff;
    double BSIM4nstar;
    double BSIM4Abulk;
    double BSIM4EsatL;
    double BSIM4AbovVgst2Vtm;
    double BSIM4qinv;
    double BSIM4cd;
    double BSIM4cbs;
    double BSIM4cbd;
    double BSIM4csub;
    double BSIM4Igidl;
    double BSIM4Igisl;
    double BSIM4gm;
    double BSIM4gds;
    double BSIM4gmbs;
    double BSIM4gbd;
    double BSIM4gbs;
    double BSIM4noiGd0;   /* tnoiMod=2 (v4.7) */
    double BSIM4Coxeff;

    double BSIM4gbbs;
    double BSIM4gbgs;
    double BSIM4gbds;
    double BSIM4ggidld;
    double BSIM4ggidlg;
    double BSIM4ggidls;
    double BSIM4ggidlb;
    double BSIM4ggisld;
    double BSIM4ggislg;
    double BSIM4ggisls;
    double BSIM4ggislb;

    double BSIM4Igcs;
    double BSIM4gIgcsg;
    double BSIM4gIgcsd;
    double BSIM4gIgcss;
    double BSIM4gIgcsb;
    double BSIM4Igcd;
    double BSIM4gIgcdg;
    double BSIM4gIgcdd;
    double BSIM4gIgcds;
    double BSIM4gIgcdb;

    double BSIM4Igs;
    double BSIM4gIgsg;
    double BSIM4gIgss;
    double BSIM4Igd;
    double BSIM4gIgdg;
    double BSIM4gIgdd;

    double BSIM4Igb;
    double BSIM4gIgbg;
    double BSIM4gIgbd;
    double BSIM4gIgbs;
    double BSIM4gIgbb;

    double BSIM4grdsw;
    double BSIM4IdovVds;
    double BSIM4gcrg;
    double BSIM4gcrgd;
    double BSIM4gcrgg;
    double BSIM4gcrgs;
    double BSIM4gcrgb;

    double BSIM4gstot;
    double BSIM4gstotd;
    double BSIM4gstotg;
    double BSIM4gstots;
    double BSIM4gstotb;

    double BSIM4gdtot;
    double BSIM4gdtotd;
    double BSIM4gdtotg;
    double BSIM4gdtots;
    double BSIM4gdtotb;

    double BSIM4cggb;
    double BSIM4cgdb;
    double BSIM4cgsb;
    double BSIM4cbgb;
    double BSIM4cbdb;
    double BSIM4cbsb;
    double BSIM4cdgb;
    double BSIM4cddb;
    double BSIM4cdsb;
    double BSIM4csgb;
    double BSIM4csdb;
    double BSIM4cssb;
    double BSIM4cgbb;
    double BSIM4cdbb;
    double BSIM4csbb;
    double BSIM4cbbb;
    double BSIM4capbd;
    double BSIM4capbs;

    double BSIM4cqgb;
    double BSIM4cqdb;
    double BSIM4cqsb;
    double BSIM4cqbb;

    double BSIM4qgate;
    double BSIM4qbulk;
    double BSIM4qdrn;
    double BSIM4qsrc;
    double BSIM4qdef;

    double BSIM4qchqs;
    double BSIM4taunet;
    double BSIM4gtau;
    double BSIM4gtg;
    double BSIM4gtd;
    double BSIM4gts;
    double BSIM4gtb;
    double BSIM4SjctTempRevSatCur;
    double BSIM4DjctTempRevSatCur;
    double BSIM4SswTempRevSatCur;
    double BSIM4DswTempRevSatCur;
    double BSIM4SswgTempRevSatCur;
    double BSIM4DswgTempRevSatCur;

    struct bsim4SizeDependParam  *pParam;

    unsigned BSIM4lGiven :1;
    unsigned BSIM4wGiven :1;
    unsigned BSIM4mGiven :1;
    unsigned BSIM4nfGiven :1;
    unsigned BSIM4minGiven :1;
    unsigned BSIM4drainAreaGiven :1;
    unsigned BSIM4sourceAreaGiven    :1;
    unsigned BSIM4drainSquaresGiven  :1;
    unsigned BSIM4sourceSquaresGiven :1;
    unsigned BSIM4drainPerimeterGiven    :1;
    unsigned BSIM4sourcePerimeterGiven   :1;
    unsigned BSIM4saGiven :1;
    unsigned BSIM4sbGiven :1;
    unsigned BSIM4sdGiven :1;
    unsigned BSIM4scaGiven :1;
    unsigned BSIM4scbGiven :1;
    unsigned BSIM4sccGiven :1;
    unsigned BSIM4scGiven :1;
    unsigned BSIM4rbdbGiven   :1;
    unsigned BSIM4rbsbGiven   :1;
    unsigned BSIM4rbpbGiven   :1;
    unsigned BSIM4rbpdGiven   :1;
    unsigned BSIM4rbpsGiven   :1;
    unsigned BSIM4delvtoGiven   :1;
    unsigned BSIM4mulu0Given   :1;
    unsigned BSIM4wnflagGiven   :1;
    unsigned BSIM4xgwGiven   :1;
    unsigned BSIM4ngconGiven   :1;
    unsigned BSIM4icVDSGiven :1;
    unsigned BSIM4icVGSGiven :1;
    unsigned BSIM4icVBSGiven :1;
    unsigned BSIM4trnqsModGiven :1;
    unsigned BSIM4acnqsModGiven :1;
    unsigned BSIM4rbodyModGiven :1;
    unsigned BSIM4rgateModGiven :1;
    unsigned BSIM4geoModGiven :1;
    unsigned BSIM4rgeoModGiven :1;


    double *BSIM4DPdPtr;
    double *BSIM4DPdpPtr;
    double *BSIM4DPgpPtr;
    double *BSIM4DPgmPtr;
    double *BSIM4DPspPtr;
    double *BSIM4DPbpPtr;
    double *BSIM4DPdbPtr;

    double *BSIM4DdPtr;
    double *BSIM4DdpPtr;

    double *BSIM4GPdpPtr;
    double *BSIM4GPgpPtr;
    double *BSIM4GPgmPtr;
    double *BSIM4GPgePtr;
    double *BSIM4GPspPtr;
    double *BSIM4GPbpPtr;

    double *BSIM4GMdpPtr;
    double *BSIM4GMgpPtr;
    double *BSIM4GMgmPtr;
    double *BSIM4GMgePtr;
    double *BSIM4GMspPtr;
    double *BSIM4GMbpPtr;

    double *BSIM4GEdpPtr;
    double *BSIM4GEgpPtr;
    double *BSIM4GEgmPtr;
    double *BSIM4GEgePtr;
    double *BSIM4GEspPtr;
    double *BSIM4GEbpPtr;

    double *BSIM4SPdpPtr;
    double *BSIM4SPgpPtr;
    double *BSIM4SPgmPtr;
    double *BSIM4SPsPtr;
    double *BSIM4SPspPtr;
    double *BSIM4SPbpPtr;
    double *BSIM4SPsbPtr;

    double *BSIM4SspPtr;
    double *BSIM4SsPtr;

    double *BSIM4BPdpPtr;
    double *BSIM4BPgpPtr;
    double *BSIM4BPgmPtr;
    double *BSIM4BPspPtr;
    double *BSIM4BPdbPtr;
    double *BSIM4BPbPtr;
    double *BSIM4BPsbPtr;
    double *BSIM4BPbpPtr;

    double *BSIM4DBdpPtr;
    double *BSIM4DBdbPtr;
    double *BSIM4DBbpPtr;
    double *BSIM4DBbPtr;

    double *BSIM4SBspPtr;
    double *BSIM4SBbpPtr;
    double *BSIM4SBbPtr;
    double *BSIM4SBsbPtr;

    double *BSIM4BdbPtr;
    double *BSIM4BbpPtr;
    double *BSIM4BsbPtr;
    double *BSIM4BbPtr;

    double *BSIM4DgpPtr;
    double *BSIM4DspPtr;
    double *BSIM4DbpPtr;
    double *BSIM4SdpPtr;
    double *BSIM4SgpPtr;
    double *BSIM4SbpPtr;

    double *BSIM4QdpPtr;
    double *BSIM4QgpPtr;
    double *BSIM4QspPtr;
    double *BSIM4QbpPtr;
    double *BSIM4QqPtr;
    double *BSIM4DPqPtr;
    double *BSIM4GPqPtr;
    double *BSIM4SPqPtr;

#ifdef USE_OMP
    /* per instance storage of results, to update matrix at a later stge */
    double BSIM4rhsdPrime;
    double BSIM4rhsgPrime;
    double BSIM4rhsgExt;
    double BSIM4grhsMid;
    double BSIM4rhsbPrime;
    double BSIM4rhssPrime;
    double BSIM4rhsdb;
    double BSIM4rhssb;
    double BSIM4rhsd;
    double BSIM4rhss;
    double BSIM4rhsq;

    double BSIM4_1;
    double BSIM4_2;
    double BSIM4_3;
    double BSIM4_4;
    double BSIM4_5;
    double BSIM4_6;
    double BSIM4_7;
    double BSIM4_8;
    double BSIM4_9;
    double BSIM4_10;
    double BSIM4_11;
    double BSIM4_12;
    double BSIM4_13;
    double BSIM4_14;
    double BSIM4_15;
    double BSIM4_16;
    double BSIM4_17;
    double BSIM4_18;
    double BSIM4_19;
    double BSIM4_20;
    double BSIM4_21;
    double BSIM4_22;
    double BSIM4_23;
    double BSIM4_24;
    double BSIM4_25;
    double BSIM4_26;
    double BSIM4_27;
    double BSIM4_28;
    double BSIM4_29;
    double BSIM4_30;
    double BSIM4_31;
    double BSIM4_32;
    double BSIM4_33;
    double BSIM4_34;
    double BSIM4_35;
    double BSIM4_36;
    double BSIM4_37;
    double BSIM4_38;
    double BSIM4_39;
    double BSIM4_40;
    double BSIM4_41;
    double BSIM4_42;
    double BSIM4_43;
    double BSIM4_44;
    double BSIM4_45;
    double BSIM4_46;
    double BSIM4_47;
    double BSIM4_48;
    double BSIM4_49;
    double BSIM4_50;
    double BSIM4_51;
    double BSIM4_52;
    double BSIM4_53;
    double BSIM4_54;
    double BSIM4_55;
    double BSIM4_56;
    double BSIM4_57;
    double BSIM4_58;
    double BSIM4_59;
    double BSIM4_60;
    double BSIM4_61;
    double BSIM4_62;
    double BSIM4_63;
    double BSIM4_64;
    double BSIM4_65;
    double BSIM4_66;
    double BSIM4_67;
    double BSIM4_68;
    double BSIM4_69;
    double BSIM4_70;
    double BSIM4_71;
    double BSIM4_72;
    double BSIM4_73;
    double BSIM4_74;
    double BSIM4_75;
    double BSIM4_76;
    double BSIM4_77;
    double BSIM4_78;
    double BSIM4_79;
    double BSIM4_80;
    double BSIM4_81;
    double BSIM4_82;
    double BSIM4_83;
    double BSIM4_84;
    double BSIM4_85;
    double BSIM4_86;
    double BSIM4_87;
    double BSIM4_88;
    double BSIM4_89;
    double BSIM4_90;
    double BSIM4_91;
    double BSIM4_92;
    double BSIM4_93;
    double BSIM4_94;
    double BSIM4_95;
    double BSIM4_96;
    double BSIM4_97;
    double BSIM4_98;
    double BSIM4_99;
    double BSIM4_100;
    double BSIM4_101;
    double BSIM4_102;
    double BSIM4_103;
#endif

#define BSIM4vbd BSIM4states+ 0
#define BSIM4vbs BSIM4states+ 1
#define BSIM4vgs BSIM4states+ 2
#define BSIM4vds BSIM4states+ 3
#define BSIM4vdbs BSIM4states+ 4
#define BSIM4vdbd BSIM4states+ 5
#define BSIM4vsbs BSIM4states+ 6
#define BSIM4vges BSIM4states+ 7
#define BSIM4vgms BSIM4states+ 8
#define BSIM4vses BSIM4states+ 9
#define BSIM4vdes BSIM4states+ 10

#define BSIM4qb BSIM4states+ 11
#define BSIM4cqb BSIM4states+ 12
#define BSIM4qg BSIM4states+ 13
#define BSIM4cqg BSIM4states+ 14
#define BSIM4qd BSIM4states+ 15
#define BSIM4cqd BSIM4states+ 16
#define BSIM4qgmid BSIM4states+ 17
#define BSIM4cqgmid BSIM4states+ 18

#define BSIM4qbs  BSIM4states+ 19
#define BSIM4cqbs  BSIM4states+ 20
#define BSIM4qbd  BSIM4states+ 21
#define BSIM4cqbd  BSIM4states+ 22

#define BSIM4qcheq BSIM4states+ 23
#define BSIM4cqcheq BSIM4states+ 24
#define BSIM4qcdump BSIM4states+ 25
#define BSIM4cqcdump BSIM4states+ 26
#define BSIM4qdef BSIM4states+ 27
#define BSIM4qs BSIM4states+ 28

#define BSIM4numStates 29


/* indices to the array of BSIM4 NOISE SOURCES */

#define BSIM4RDNOIZ       0
#define BSIM4RSNOIZ       1
#define BSIM4RGNOIZ       2
#define BSIM4RBPSNOIZ     3
#define BSIM4RBPDNOIZ     4
#define BSIM4RBPBNOIZ     5
#define BSIM4RBSBNOIZ     6
#define BSIM4RBDBNOIZ     7
#define BSIM4IDNOIZ       8
#define BSIM4FLNOIZ       9
#define BSIM4IGSNOIZ      10
#define BSIM4IGDNOIZ      11
#define BSIM4IGBNOIZ      12
#define BSIM4CORLNOIZ     13
#define BSIM4TOTNOIZ      14

#define BSIM4NSRCS        15  /* Number of BSIM4 noise sources */

#ifndef NONOISE
    double BSIM4nVar[NSTATVARS][BSIM4NSRCS];
#else /* NONOISE */
        double **BSIM4nVar;
#endif /* NONOISE */

} BSIM4instance ;

struct bsim4SizeDependParam
{
    double Width;
    double Length;
    double NFinger;

    double BSIM4cdsc;
    double BSIM4cdscb;
    double BSIM4cdscd;
    double BSIM4cit;
    double BSIM4nfactor;
    double BSIM4xj;
    double BSIM4vsat;
    double BSIM4at;
    double BSIM4a0;
    double BSIM4ags;
    double BSIM4a1;
    double BSIM4a2;
    double BSIM4keta;
    double BSIM4nsub;
    double BSIM4ndep;
    double BSIM4nsd;
    double BSIM4phin;
    double BSIM4ngate;
    double BSIM4gamma1;
    double BSIM4gamma2;
    double BSIM4vbx;
    double BSIM4vbi;
    double BSIM4vbm;
    double BSIM4xt;
    double BSIM4phi;
    double BSIM4litl;
    double BSIM4k1;
    double BSIM4kt1;
    double BSIM4kt1l;
    double BSIM4kt2;
    double BSIM4k2;
    double BSIM4k3;
    double BSIM4k3b;
    double BSIM4w0;
    double BSIM4dvtp0;
    double BSIM4dvtp1;
    double BSIM4dvtp2;	/* New DIBL/Rout */
    double BSIM4dvtp3;
    double BSIM4dvtp4;
    double BSIM4dvtp5;
    double BSIM4lpe0;
    double BSIM4lpeb;
    double BSIM4dvt0;
    double BSIM4dvt1;
    double BSIM4dvt2;
    double BSIM4dvt0w;
    double BSIM4dvt1w;
    double BSIM4dvt2w;
    double BSIM4drout;
    double BSIM4dsub;
    double BSIM4vth0;
    double BSIM4ua;
    double BSIM4ua1;
    double BSIM4ub;
    double BSIM4ub1;
    double BSIM4uc;
    double BSIM4uc1;
    double BSIM4ud;
    double BSIM4ud1;
    double BSIM4up;
    double BSIM4lp;
    double BSIM4u0;
    double BSIM4eu;
  	double BSIM4ucs;
    double BSIM4ute;
	  double BSIM4ucste;
    double BSIM4voff;
    double BSIM4tvoff;
    double BSIM4tnfactor; 	/* v4.7 Temp dep of leakage current */
    double BSIM4teta0;   	/* v4.7 temp dep of leakage current */
    double BSIM4tvoffcv;	/* v4.7 temp dep of leakage current */
    double BSIM4minv;
    double BSIM4minvcv;
    double BSIM4vfb;
    double BSIM4delta;
    double BSIM4rdsw;
    double BSIM4rds0;
    double BSIM4rs0;
    double BSIM4rd0;
    double BSIM4rsw;
    double BSIM4rdw;
    double BSIM4prwg;
    double BSIM4prwb;
    double BSIM4prt;
    double BSIM4eta0;
    double BSIM4etab;
    double BSIM4pclm;
    double BSIM4pdibl1;
    double BSIM4pdibl2;
    double BSIM4pdiblb;
    double BSIM4fprout;
    double BSIM4pdits;
    double BSIM4pditsd;
    double BSIM4pscbe1;
    double BSIM4pscbe2;
    double BSIM4pvag;
    double BSIM4wr;
    double BSIM4dwg;
    double BSIM4dwb;
    double BSIM4b0;
    double BSIM4b1;
    double BSIM4alpha0;
    double BSIM4alpha1;
    double BSIM4beta0;
    double BSIM4agidl;
    double BSIM4bgidl;
    double BSIM4cgidl;
    double BSIM4egidl;
    double BSIM4fgidl; /* v4.7 New GIDL/GISL */
    double BSIM4kgidl; /* v4.7 New GIDL/GISL */
    double BSIM4rgidl; /* v4.7 New GIDL/GISL */
    double BSIM4agisl;
    double BSIM4bgisl;
    double BSIM4cgisl;
    double BSIM4egisl;
    double BSIM4fgisl; /* v4.7 New GIDL/GISL */
    double BSIM4kgisl; /* v4.7 New GIDL/GISL */
    double BSIM4rgisl; /* v4.7 New GIDL/GISL */
    double BSIM4aigc;
    double BSIM4bigc;
    double BSIM4cigc;
    double BSIM4aigsd;
    double BSIM4bigsd;
    double BSIM4cigsd;
    double BSIM4aigs;
    double BSIM4bigs;
    double BSIM4cigs;
    double BSIM4aigd;
    double BSIM4bigd;
    double BSIM4cigd;
    double BSIM4aigbacc;
    double BSIM4bigbacc;
    double BSIM4cigbacc;
    double BSIM4aigbinv;
    double BSIM4bigbinv;
    double BSIM4cigbinv;
    double BSIM4nigc;
    double BSIM4nigbacc;
    double BSIM4nigbinv;
    double BSIM4ntox;
    double BSIM4eigbinv;
    double BSIM4pigcd;
    double BSIM4poxedge;
    double BSIM4xrcrg1;
    double BSIM4xrcrg2;
    double BSIM4lambda; /* overshoot */
    double BSIM4vtl; /* thermal velocity limit */
    double BSIM4xn; /* back scattering parameter */
    double BSIM4lc; /* back scattering parameter */
    double BSIM4tfactor;  /* ballistic transportation factor  */
    double BSIM4vfbsdoff;  /* S/D flatband offset voltage  */
    double BSIM4tvfbsdoff;

/* added for stress effect */
    double BSIM4ku0;
    double BSIM4kvth0;
    double BSIM4ku0temp;
    double BSIM4rho_ref;
    double BSIM4inv_od_ref;
/* added for well proximity effect */
    double BSIM4kvth0we;
    double BSIM4k2we;
    double BSIM4ku0we;

    /* CV model */
    double BSIM4cgsl;
    double BSIM4cgdl;
    double BSIM4ckappas;
    double BSIM4ckappad;
    double BSIM4cf;
    double BSIM4clc;
    double BSIM4cle;
    double BSIM4vfbcv;
    double BSIM4noff;
    double BSIM4voffcv;
    double BSIM4acde;
    double BSIM4moin;

/* Pre-calculated constants */

    double BSIM4dw;
    double BSIM4dl;
    double BSIM4leff;
    double BSIM4weff;

    double BSIM4dwc;
    double BSIM4dlc;
    double BSIM4dwj;
    double BSIM4leffCV;
    double BSIM4weffCV;
    double BSIM4weffCJ;
    double BSIM4abulkCVfactor;
    double BSIM4cgso;
    double BSIM4cgdo;
    double BSIM4cgbo;

    double BSIM4u0temp;
    double BSIM4vsattemp;
    double BSIM4sqrtPhi;
    double BSIM4phis3;
    double BSIM4Xdep0;
    double BSIM4sqrtXdep0;
    double BSIM4theta0vb0;
    double BSIM4thetaRout;
    double BSIM4mstar;
	  double BSIM4VgsteffVth;
    double BSIM4mstarcv;
    double BSIM4voffcbn;
    double BSIM4voffcbncv;
    double BSIM4rdswmin;
    double BSIM4rdwmin;
    double BSIM4rswmin;
    double BSIM4vfbsd;

    double BSIM4cof1;
    double BSIM4cof2;
    double BSIM4cof3;
    double BSIM4cof4;
    double BSIM4cdep0;
    double BSIM4ToxRatio;
    double BSIM4Aechvb;
    double BSIM4Bechvb;
    double BSIM4ToxRatioEdge;
    double BSIM4AechvbEdgeS;
    double BSIM4AechvbEdgeD;
    double BSIM4BechvbEdge;
    double BSIM4ldeb;
    double BSIM4k1ox;
    double BSIM4k2ox;
    double BSIM4vfbzbfactor;
    double BSIM4dvtp2factor; /* v4.7 */
    struct bsim4SizeDependParam  *pNext;
};


typedef struct sBSIM4model
{

    struct GENmodel gen;

#define BSIM4modType gen.GENmodType
#define BSIM4nextModel(inst) ((struct sBSIM4model *)((inst)->gen.GENnextModel))
#define BSIM4instances(inst) ((BSIM4instance *)((inst)->gen.GENinstances))
#define BSIM4modName gen.GENmodName

    int BSIM4type;

    int    BSIM4mobMod;
    int    BSIM4cvchargeMod;
    int    BSIM4capMod;
    int    BSIM4dioMod;
    int    BSIM4trnqsMod;
    int    BSIM4acnqsMod;
    int    BSIM4fnoiMod;
    int    BSIM4tnoiMod;
    int    BSIM4rdsMod;
    int    BSIM4rbodyMod;
    int    BSIM4rgateMod;
    int    BSIM4perMod;
    int    BSIM4geoMod;
    int    BSIM4rgeoMod;
    int    BSIM4mtrlMod;
    int    BSIM4mtrlCompatMod; /* v4.7 */
    int    BSIM4gidlMod; /* v4.7 New GIDL/GISL */
    int    BSIM4igcMod;
    int    BSIM4igbMod;
    int    BSIM4tempMod;
    int    BSIM4binUnit;
    int    BSIM4paramChk;
    char   *BSIM4version;
    double BSIM4eot;
    double BSIM4vddeot;
  	double BSIM4tempeot;
  	double BSIM4leffeot;
  	double BSIM4weffeot;
    double BSIM4ados;
    double BSIM4bdos;
    double BSIM4toxe;
    double BSIM4toxp;
    double BSIM4toxm;
    double BSIM4dtox;
    double BSIM4epsrox;
    double BSIM4cdsc;
    double BSIM4cdscb;
    double BSIM4cdscd;
    double BSIM4cit;
    double BSIM4nfactor;
    double BSIM4xj;
    double BSIM4vsat;
    double BSIM4at;
    double BSIM4a0;
    double BSIM4ags;
    double BSIM4a1;
    double BSIM4a2;
    double BSIM4keta;
    double BSIM4nsub;
    double BSIM4phig;
    double BSIM4epsrgate;
    double BSIM4easub;
    double BSIM4epsrsub;
    double BSIM4ni0sub;
    double BSIM4bg0sub;
    double BSIM4tbgasub;
    double BSIM4tbgbsub;
    double BSIM4ndep;
    double BSIM4nsd;
    double BSIM4phin;
    double BSIM4ngate;
    double BSIM4gamma1;
    double BSIM4gamma2;
    double BSIM4vbx;
    double BSIM4vbm;
    double BSIM4xt;
    double BSIM4k1;
    double BSIM4kt1;
    double BSIM4kt1l;
    double BSIM4kt2;
    double BSIM4k2;
    double BSIM4k3;
    double BSIM4k3b;
    double BSIM4w0;
    double BSIM4dvtp0;
    double BSIM4dvtp1;
    double BSIM4dvtp2;	/* New DIBL/Rout */
    double BSIM4dvtp3;
    double BSIM4dvtp4;
    double BSIM4dvtp5;
    double BSIM4lpe0;
    double BSIM4lpeb;
    double BSIM4dvt0;
    double BSIM4dvt1;
    double BSIM4dvt2;
    double BSIM4dvt0w;
    double BSIM4dvt1w;
    double BSIM4dvt2w;
    double BSIM4drout;
    double BSIM4dsub;
    double BSIM4vth0;
    double BSIM4eu;
  	double BSIM4ucs;
    double BSIM4ua;
    double BSIM4ua1;
    double BSIM4ub;
    double BSIM4ub1;
    double BSIM4uc;
    double BSIM4uc1;
    double BSIM4ud;
    double BSIM4ud1;
    double BSIM4up;
    double BSIM4lp;
    double BSIM4u0;
    double BSIM4ute;
  	double BSIM4ucste;
    double BSIM4voff;
    double BSIM4tvoff;
    double BSIM4tnfactor; 	/* v4.7 Temp dep of leakage current */
    double BSIM4teta0;   	/* v4.7 temp dep of leakage current */
    double BSIM4tvoffcv;	/* v4.7 temp dep of leakage current */
    double BSIM4minv;
    double BSIM4minvcv;
    double BSIM4voffl;
    double BSIM4voffcvl;
    double BSIM4delta;
    double BSIM4rdsw;
    double BSIM4rdswmin;
    double BSIM4rdwmin;
    double BSIM4rswmin;
    double BSIM4rsw;
    double BSIM4rdw;
    double BSIM4prwg;
    double BSIM4prwb;
    double BSIM4prt;
    double BSIM4eta0;
    double BSIM4etab;
    double BSIM4pclm;
    double BSIM4pdibl1;
    double BSIM4pdibl2;
    double BSIM4pdiblb;
    double BSIM4fprout;
    double BSIM4pdits;
    double BSIM4pditsd;
    double BSIM4pditsl;
    double BSIM4pscbe1;
    double BSIM4pscbe2;
    double BSIM4pvag;
    double BSIM4wr;
    double BSIM4dwg;
    double BSIM4dwb;
    double BSIM4b0;
    double BSIM4b1;
    double BSIM4alpha0;
    double BSIM4alpha1;
    double BSIM4beta0;
    double BSIM4agidl;
    double BSIM4bgidl;
    double BSIM4cgidl;
    double BSIM4egidl;
    double BSIM4fgidl; /* v4.7 New GIDL/GISL */
    double BSIM4kgidl; /* v4.7 New GIDL/GISL */
    double BSIM4rgidl; /* v4.7 New GIDL/GISL */
    double BSIM4agisl;
    double BSIM4bgisl;
    double BSIM4cgisl;
    double BSIM4egisl;
    double BSIM4fgisl; /* v4.7 New GIDL/GISL */
    double BSIM4kgisl; /* v4.7 New GIDL/GISL */
    double BSIM4rgisl; /* v4.7 New GIDL/GISL */
    double BSIM4aigc;
    double BSIM4bigc;
    double BSIM4cigc;
    double BSIM4aigsd;
    double BSIM4bigsd;
    double BSIM4cigsd;
    double BSIM4aigs;
    double BSIM4bigs;
    double BSIM4cigs;
    double BSIM4aigd;
    double BSIM4bigd;
    double BSIM4cigd;
    double BSIM4aigbacc;
    double BSIM4bigbacc;
    double BSIM4cigbacc;
    double BSIM4aigbinv;
    double BSIM4bigbinv;
    double BSIM4cigbinv;
    double BSIM4nigc;
    double BSIM4nigbacc;
    double BSIM4nigbinv;
    double BSIM4ntox;
    double BSIM4eigbinv;
    double BSIM4pigcd;
    double BSIM4poxedge;
    double BSIM4toxref;
    double BSIM4ijthdfwd;
    double BSIM4ijthsfwd;
    double BSIM4ijthdrev;
    double BSIM4ijthsrev;
    double BSIM4xjbvd;
    double BSIM4xjbvs;
    double BSIM4bvd;
    double BSIM4bvs;

    double BSIM4jtss;
    double BSIM4jtsd;
    double BSIM4jtssws;
    double BSIM4jtsswd;
    double BSIM4jtsswgs;
    double BSIM4jtsswgd;
    double BSIM4jtweff;
    double BSIM4njts;
    double BSIM4njtssw;
    double BSIM4njtsswg;
    double BSIM4njtsd;
    double BSIM4njtsswd;
    double BSIM4njtsswgd;
    double BSIM4xtss;
    double BSIM4xtsd;
    double BSIM4xtssws;
    double BSIM4xtsswd;
    double BSIM4xtsswgs;
    double BSIM4xtsswgd;
    double BSIM4tnjts;
    double BSIM4tnjtssw;
    double BSIM4tnjtsswg;
    double BSIM4tnjtsd;
    double BSIM4tnjtsswd;
    double BSIM4tnjtsswgd;
    double BSIM4vtss;
    double BSIM4vtsd;
    double BSIM4vtssws;
    double BSIM4vtsswd;
    double BSIM4vtsswgs;
    double BSIM4vtsswgd;

    double BSIM4xrcrg1;
    double BSIM4xrcrg2;
    double BSIM4lambda;
    double BSIM4vtl;
    double BSIM4lc;
    double BSIM4xn;
    double BSIM4vfbsdoff;  /* S/D flatband offset voltage  */
    double BSIM4lintnoi;  /* lint offset for noise calculation  */
    double BSIM4tvfbsdoff;

    double BSIM4vfb;
    double BSIM4gbmin;
    double BSIM4rbdb;
    double BSIM4rbsb;
    double BSIM4rbpb;
    double BSIM4rbps;
    double BSIM4rbpd;

    double BSIM4rbps0;
    double BSIM4rbpsl;
    double BSIM4rbpsw;
    double BSIM4rbpsnf;

    double BSIM4rbpd0;
    double BSIM4rbpdl;
    double BSIM4rbpdw;
    double BSIM4rbpdnf;

    double BSIM4rbpbx0;
    double BSIM4rbpbxl;
    double BSIM4rbpbxw;
    double BSIM4rbpbxnf;
    double BSIM4rbpby0;
    double BSIM4rbpbyl;
    double BSIM4rbpbyw;
    double BSIM4rbpbynf;

    double BSIM4rbsbx0;
    double BSIM4rbsby0;
    double BSIM4rbdbx0;
    double BSIM4rbdby0;

    double BSIM4rbsdbxl;
    double BSIM4rbsdbxw;
    double BSIM4rbsdbxnf;
    double BSIM4rbsdbyl;
    double BSIM4rbsdbyw;
    double BSIM4rbsdbynf;

    double BSIM4tnoia;
    double BSIM4tnoib;
    double BSIM4tnoic;
    double BSIM4rnoia;
    double BSIM4rnoib;
    double BSIM4rnoic;
    double BSIM4ntnoi;

    /* CV model and Parasitics */
    double BSIM4cgsl;
    double BSIM4cgdl;
    double BSIM4ckappas;
    double BSIM4ckappad;
    double BSIM4cf;
    double BSIM4vfbcv;
    double BSIM4clc;
    double BSIM4cle;
    double BSIM4dwc;
    double BSIM4dlc;
    double BSIM4xw;
    double BSIM4xl;
    double BSIM4dlcig;
    double BSIM4dlcigd;
    double BSIM4dwj;
    double BSIM4noff;
    double BSIM4voffcv;
    double BSIM4acde;
    double BSIM4moin;
    double BSIM4tcj;
    double BSIM4tcjsw;
    double BSIM4tcjswg;
    double BSIM4tpb;
    double BSIM4tpbsw;
    double BSIM4tpbswg;
    double BSIM4dmcg;
    double BSIM4dmci;
    double BSIM4dmdg;
    double BSIM4dmcgt;
    double BSIM4xgw;
    double BSIM4xgl;
    double BSIM4rshg;
    double BSIM4ngcon;

    /* Length Dependence */
    double BSIM4lcdsc;
    double BSIM4lcdscb;
    double BSIM4lcdscd;
    double BSIM4lcit;
    double BSIM4lnfactor;
    double BSIM4lxj;
    double BSIM4lvsat;
    double BSIM4lat;
    double BSIM4la0;
    double BSIM4lags;
    double BSIM4la1;
    double BSIM4la2;
    double BSIM4lketa;
    double BSIM4lnsub;
    double BSIM4lndep;
    double BSIM4lnsd;
    double BSIM4lphin;
    double BSIM4lngate;
    double BSIM4lgamma1;
    double BSIM4lgamma2;
    double BSIM4lvbx;
    double BSIM4lvbm;
    double BSIM4lxt;
    double BSIM4lk1;
    double BSIM4lkt1;
    double BSIM4lkt1l;
    double BSIM4lkt2;
    double BSIM4lk2;
    double BSIM4lk3;
    double BSIM4lk3b;
    double BSIM4lw0;
    double BSIM4ldvtp0;
    double BSIM4ldvtp1;
    double BSIM4ldvtp2;        /* New DIBL/Rout */
    double BSIM4ldvtp3;
    double BSIM4ldvtp4;
    double BSIM4ldvtp5;
    double BSIM4llpe0;
    double BSIM4llpeb;
    double BSIM4ldvt0;
    double BSIM4ldvt1;
    double BSIM4ldvt2;
    double BSIM4ldvt0w;
    double BSIM4ldvt1w;
    double BSIM4ldvt2w;
    double BSIM4ldrout;
    double BSIM4ldsub;
    double BSIM4lvth0;
    double BSIM4lua;
    double BSIM4lua1;
    double BSIM4lub;
    double BSIM4lub1;
    double BSIM4luc;
    double BSIM4luc1;
    double BSIM4lud;
    double BSIM4lud1;
    double BSIM4lup;
    double BSIM4llp;
    double BSIM4lu0;
    double BSIM4leu;
    double BSIM4lucs;
    double BSIM4lute;
    double BSIM4lucste;
    double BSIM4lvoff;
    double BSIM4ltvoff;
    double BSIM4ltnfactor;         /* v4.7 Temp dep of leakage current */
    double BSIM4lteta0;           /* v4.7 temp dep of leakage current */
    double BSIM4ltvoffcv;        /* v4.7 temp dep of leakage current */
    double BSIM4lminv;
    double BSIM4lminvcv;
    double BSIM4ldelta;
    double BSIM4lrdsw;
    double BSIM4lrsw;
    double BSIM4lrdw;
    double BSIM4lprwg;
    double BSIM4lprwb;
    double BSIM4lprt;
    double BSIM4leta0;
    double BSIM4letab;
    double BSIM4lpclm;
    double BSIM4lpdibl1;
    double BSIM4lpdibl2;
    double BSIM4lpdiblb;
    double BSIM4lfprout;
    double BSIM4lpdits;
    double BSIM4lpditsd;
    double BSIM4lpscbe1;
    double BSIM4lpscbe2;
    double BSIM4lpvag;
    double BSIM4lwr;
    double BSIM4ldwg;
    double BSIM4ldwb;
    double BSIM4lb0;
    double BSIM4lb1;
    double BSIM4lalpha0;
    double BSIM4lalpha1;
    double BSIM4lbeta0;
    double BSIM4lvfb;
    double BSIM4lagidl;
    double BSIM4lbgidl;
    double BSIM4lcgidl;
    double BSIM4legidl;
    double BSIM4lfgidl; /* v4.7 New GIDL/GISL */
    double BSIM4lkgidl; /* v4.7 New GIDL/GISL */
    double BSIM4lrgidl; /* v4.7 New GIDL/GISL */
    double BSIM4lagisl;
    double BSIM4lbgisl;
    double BSIM4lcgisl;
    double BSIM4legisl;
    double BSIM4lfgisl; /* v4.7 New GIDL/GISL */
    double BSIM4lkgisl; /* v4.7 New GIDL/GISL */
    double BSIM4lrgisl; /* v4.7 New GIDL/GISL */
    double BSIM4laigc;
    double BSIM4lbigc;
    double BSIM4lcigc;
    double BSIM4laigsd;
    double BSIM4lbigsd;
    double BSIM4lcigsd;
    double BSIM4laigs;
    double BSIM4lbigs;
    double BSIM4lcigs;
    double BSIM4laigd;
    double BSIM4lbigd;
    double BSIM4lcigd;
    double BSIM4laigbacc;
    double BSIM4lbigbacc;
    double BSIM4lcigbacc;
    double BSIM4laigbinv;
    double BSIM4lbigbinv;
    double BSIM4lcigbinv;
    double BSIM4lnigc;
    double BSIM4lnigbacc;
    double BSIM4lnigbinv;
    double BSIM4lntox;
    double BSIM4leigbinv;
    double BSIM4lpigcd;
    double BSIM4lpoxedge;
    double BSIM4lxrcrg1;
    double BSIM4lxrcrg2;
    double BSIM4llambda;
    double BSIM4lvtl;
    double BSIM4lxn;
    double BSIM4lvfbsdoff;
    double BSIM4ltvfbsdoff;

    /* CV model */
    double BSIM4lcgsl;
    double BSIM4lcgdl;
    double BSIM4lckappas;
    double BSIM4lckappad;
    double BSIM4lcf;
    double BSIM4lclc;
    double BSIM4lcle;
    double BSIM4lvfbcv;
    double BSIM4lnoff;
    double BSIM4lvoffcv;
    double BSIM4lacde;
    double BSIM4lmoin;

    /* Width Dependence */
    double BSIM4wcdsc;
    double BSIM4wcdscb;
    double BSIM4wcdscd;
    double BSIM4wcit;
    double BSIM4wnfactor;
    double BSIM4wxj;
    double BSIM4wvsat;
    double BSIM4wat;
    double BSIM4wa0;
    double BSIM4wags;
    double BSIM4wa1;
    double BSIM4wa2;
    double BSIM4wketa;
    double BSIM4wnsub;
    double BSIM4wndep;
    double BSIM4wnsd;
    double BSIM4wphin;
    double BSIM4wngate;
    double BSIM4wgamma1;
    double BSIM4wgamma2;
    double BSIM4wvbx;
    double BSIM4wvbm;
    double BSIM4wxt;
    double BSIM4wk1;
    double BSIM4wkt1;
    double BSIM4wkt1l;
    double BSIM4wkt2;
    double BSIM4wk2;
    double BSIM4wk3;
    double BSIM4wk3b;
    double BSIM4ww0;
    double BSIM4wdvtp0;
    double BSIM4wdvtp1;
    double BSIM4wdvtp2;        /* New DIBL/Rout */
    double BSIM4wdvtp3;
    double BSIM4wdvtp4;
    double BSIM4wdvtp5;
    double BSIM4wlpe0;
    double BSIM4wlpeb;
    double BSIM4wdvt0;
    double BSIM4wdvt1;
    double BSIM4wdvt2;
    double BSIM4wdvt0w;
    double BSIM4wdvt1w;
    double BSIM4wdvt2w;
    double BSIM4wdrout;
    double BSIM4wdsub;
    double BSIM4wvth0;
    double BSIM4wua;
    double BSIM4wua1;
    double BSIM4wub;
    double BSIM4wub1;
    double BSIM4wuc;
    double BSIM4wuc1;
    double BSIM4wud;
    double BSIM4wud1;
    double BSIM4wup;
    double BSIM4wlp;
    double BSIM4wu0;
    double BSIM4weu;
    double BSIM4wucs;
    double BSIM4wute;
    double BSIM4wucste;
    double BSIM4wvoff;
    double BSIM4wtvoff;
    double BSIM4wtnfactor;         /* v4.7 Temp dep of leakage current */
    double BSIM4wteta0;           /* v4.7 temp dep of leakage current */
    double BSIM4wtvoffcv;        /* v4.7 temp dep of leakage current */
    double BSIM4wminv;
    double BSIM4wminvcv;
    double BSIM4wdelta;
    double BSIM4wrdsw;
    double BSIM4wrsw;
    double BSIM4wrdw;
    double BSIM4wprwg;
    double BSIM4wprwb;
    double BSIM4wprt;
    double BSIM4weta0;
    double BSIM4wetab;
    double BSIM4wpclm;
    double BSIM4wpdibl1;
    double BSIM4wpdibl2;
    double BSIM4wpdiblb;
    double BSIM4wfprout;
    double BSIM4wpdits;
    double BSIM4wpditsd;
    double BSIM4wpscbe1;
    double BSIM4wpscbe2;
    double BSIM4wpvag;
    double BSIM4wwr;
    double BSIM4wdwg;
    double BSIM4wdwb;
    double BSIM4wb0;
    double BSIM4wb1;
    double BSIM4walpha0;
    double BSIM4walpha1;
    double BSIM4wbeta0;
    double BSIM4wvfb;
    double BSIM4wagidl;
    double BSIM4wbgidl;
    double BSIM4wcgidl;
    double BSIM4wegidl;
    double BSIM4wfgidl; /* v4.7 New GIDL/GISL */
    double BSIM4wkgidl; /* v4.7 New GIDL/GISL */
    double BSIM4wrgidl; /* v4.7 New GIDL/GISL */
    double BSIM4wagisl;
    double BSIM4wbgisl;
    double BSIM4wcgisl;
    double BSIM4wegisl;
    double BSIM4wfgisl; /* v4.7 New GIDL/GISL */
    double BSIM4wkgisl; /* v4.7 New GIDL/GISL */
    double BSIM4wrgisl; /* v4.7 New GIDL/GISL */
    double BSIM4waigc;
    double BSIM4wbigc;
    double BSIM4wcigc;
    double BSIM4waigsd;
    double BSIM4wbigsd;
    double BSIM4wcigsd;
    double BSIM4waigs;
    double BSIM4wbigs;
    double BSIM4wcigs;
    double BSIM4waigd;
    double BSIM4wbigd;
    double BSIM4wcigd;
    double BSIM4waigbacc;
    double BSIM4wbigbacc;
    double BSIM4wcigbacc;
    double BSIM4waigbinv;
    double BSIM4wbigbinv;
    double BSIM4wcigbinv;
    double BSIM4wnigc;
    double BSIM4wnigbacc;
    double BSIM4wnigbinv;
    double BSIM4wntox;
    double BSIM4weigbinv;
    double BSIM4wpigcd;
    double BSIM4wpoxedge;
    double BSIM4wxrcrg1;
    double BSIM4wxrcrg2;
    double BSIM4wlambda;
    double BSIM4wvtl;
    double BSIM4wxn;
    double BSIM4wvfbsdoff;
    double BSIM4wtvfbsdoff;

    /* CV model */
    double BSIM4wcgsl;
    double BSIM4wcgdl;
    double BSIM4wckappas;
    double BSIM4wckappad;
    double BSIM4wcf;
    double BSIM4wclc;
    double BSIM4wcle;
    double BSIM4wvfbcv;
    double BSIM4wnoff;
    double BSIM4wvoffcv;
    double BSIM4wacde;
    double BSIM4wmoin;

    /* Cross-term Dependence */
    double BSIM4pcdsc;
    double BSIM4pcdscb;
    double BSIM4pcdscd;
    double BSIM4pcit;
    double BSIM4pnfactor;
    double BSIM4pxj;
    double BSIM4pvsat;
    double BSIM4pat;
    double BSIM4pa0;
    double BSIM4pags;
    double BSIM4pa1;
    double BSIM4pa2;
    double BSIM4pketa;
    double BSIM4pnsub;
    double BSIM4pndep;
    double BSIM4pnsd;
    double BSIM4pphin;
    double BSIM4pngate;
    double BSIM4pgamma1;
    double BSIM4pgamma2;
    double BSIM4pvbx;
    double BSIM4pvbm;
    double BSIM4pxt;
    double BSIM4pk1;
    double BSIM4pkt1;
    double BSIM4pkt1l;
    double BSIM4pkt2;
    double BSIM4pk2;
    double BSIM4pk3;
    double BSIM4pk3b;
    double BSIM4pw0;
    double BSIM4pdvtp0;
    double BSIM4pdvtp1;
    double BSIM4pdvtp2;        /* New DIBL/Rout */
    double BSIM4pdvtp3;
    double BSIM4pdvtp4;
    double BSIM4pdvtp5;
    double BSIM4plpe0;
    double BSIM4plpeb;
    double BSIM4pdvt0;
    double BSIM4pdvt1;
    double BSIM4pdvt2;
    double BSIM4pdvt0w;
    double BSIM4pdvt1w;
    double BSIM4pdvt2w;
    double BSIM4pdrout;
    double BSIM4pdsub;
    double BSIM4pvth0;
    double BSIM4pua;
    double BSIM4pua1;
    double BSIM4pub;
    double BSIM4pub1;
    double BSIM4puc;
    double BSIM4puc1;
    double BSIM4pud;
    double BSIM4pud1;
    double BSIM4pup;
    double BSIM4plp;
    double BSIM4pu0;
    double BSIM4peu;
    double BSIM4pucs;
    double BSIM4pute;
    double BSIM4pucste;
    double BSIM4pvoff;
    double BSIM4ptvoff;
    double BSIM4ptnfactor;         /* v4.7 Temp dep of leakage current */
    double BSIM4pteta0;           /* v4.7 temp dep of leakage current */
    double BSIM4ptvoffcv;        /* v4.7 temp dep of leakage current */
    double BSIM4pminv;
    double BSIM4pminvcv;
    double BSIM4pdelta;
    double BSIM4prdsw;
    double BSIM4prsw;
    double BSIM4prdw;
    double BSIM4pprwg;
    double BSIM4pprwb;
    double BSIM4pprt;
    double BSIM4peta0;
    double BSIM4petab;
    double BSIM4ppclm;
    double BSIM4ppdibl1;
    double BSIM4ppdibl2;
    double BSIM4ppdiblb;
    double BSIM4pfprout;
    double BSIM4ppdits;
    double BSIM4ppditsd;
    double BSIM4ppscbe1;
    double BSIM4ppscbe2;
    double BSIM4ppvag;
    double BSIM4pwr;
    double BSIM4pdwg;
    double BSIM4pdwb;
    double BSIM4pb0;
    double BSIM4pb1;
    double BSIM4palpha0;
    double BSIM4palpha1;
    double BSIM4pbeta0;
    double BSIM4pvfb;
    double BSIM4pagidl;
    double BSIM4pbgidl;
    double BSIM4pcgidl;
    double BSIM4pegidl;
    double BSIM4pfgidl; /* v4.7 New GIDL/GISL */
    double BSIM4pkgidl; /* v4.7 New GIDL/GISL */
    double BSIM4prgidl; /* v4.7 New GIDL/GISL */
    double BSIM4pagisl;
    double BSIM4pbgisl;
    double BSIM4pcgisl;
    double BSIM4pegisl;
    double BSIM4pfgisl; /* v4.7 New GIDL/GISL */
    double BSIM4pkgisl; /* v4.7 New GIDL/GISL */
    double BSIM4prgisl; /* v4.7 New GIDL/GISL */
    double BSIM4paigc;
    double BSIM4pbigc;
    double BSIM4pcigc;
    double BSIM4paigsd;
    double BSIM4pbigsd;
    double BSIM4pcigsd;
    double BSIM4paigs;
    double BSIM4pbigs;
    double BSIM4pcigs;
    double BSIM4paigd;
    double BSIM4pbigd;
    double BSIM4pcigd;
    double BSIM4paigbacc;
    double BSIM4pbigbacc;
    double BSIM4pcigbacc;
    double BSIM4paigbinv;
    double BSIM4pbigbinv;
    double BSIM4pcigbinv;
    double BSIM4pnigc;
    double BSIM4pnigbacc;
    double BSIM4pnigbinv;
    double BSIM4pntox;
    double BSIM4peigbinv;
    double BSIM4ppigcd;
    double BSIM4ppoxedge;
    double BSIM4pxrcrg1;
    double BSIM4pxrcrg2;
    double BSIM4plambda;
    double BSIM4pvtl;
    double BSIM4pxn;
    double BSIM4pvfbsdoff;
    double BSIM4ptvfbsdoff;

    /* CV model */
    double BSIM4pcgsl;
    double BSIM4pcgdl;
    double BSIM4pckappas;
    double BSIM4pckappad;
    double BSIM4pcf;
    double BSIM4pclc;
    double BSIM4pcle;
    double BSIM4pvfbcv;
    double BSIM4pnoff;
    double BSIM4pvoffcv;
    double BSIM4pacde;
    double BSIM4pmoin;

    double BSIM4tnom;
    double BSIM4cgso;
    double BSIM4cgdo;
    double BSIM4cgbo;
    double BSIM4xpart;
    double BSIM4cFringOut;
    double BSIM4cFringMax;

    double BSIM4sheetResistance;
    double BSIM4SjctSatCurDensity;
    double BSIM4DjctSatCurDensity;
    double BSIM4SjctSidewallSatCurDensity;
    double BSIM4DjctSidewallSatCurDensity;
    double BSIM4SjctGateSidewallSatCurDensity;
    double BSIM4DjctGateSidewallSatCurDensity;
    double BSIM4SbulkJctPotential;
    double BSIM4DbulkJctPotential;
    double BSIM4SbulkJctBotGradingCoeff;
    double BSIM4DbulkJctBotGradingCoeff;
    double BSIM4SbulkJctSideGradingCoeff;
    double BSIM4DbulkJctSideGradingCoeff;
    double BSIM4SbulkJctGateSideGradingCoeff;
    double BSIM4DbulkJctGateSideGradingCoeff;
    double BSIM4SsidewallJctPotential;
    double BSIM4DsidewallJctPotential;
    double BSIM4SGatesidewallJctPotential;
    double BSIM4DGatesidewallJctPotential;
    double BSIM4SunitAreaJctCap;
    double BSIM4DunitAreaJctCap;
    double BSIM4SunitLengthSidewallJctCap;
    double BSIM4DunitLengthSidewallJctCap;
    double BSIM4SunitLengthGateSidewallJctCap;
    double BSIM4DunitLengthGateSidewallJctCap;
    double BSIM4SjctEmissionCoeff;
    double BSIM4DjctEmissionCoeff;
    double BSIM4SjctTempExponent;
    double BSIM4DjctTempExponent;
    double BSIM4njtsstemp;
    double BSIM4njtsswstemp;
    double BSIM4njtsswgstemp;
    double BSIM4njtsdtemp;
    double BSIM4njtsswdtemp;
    double BSIM4njtsswgdtemp;

    double BSIM4Lint;
    double BSIM4Ll;
    double BSIM4Llc;
    double BSIM4Lln;
    double BSIM4Lw;
    double BSIM4Lwc;
    double BSIM4Lwn;
    double BSIM4Lwl;
    double BSIM4Lwlc;
    double BSIM4Lmin;
    double BSIM4Lmax;

    double BSIM4Wint;
    double BSIM4Wl;
    double BSIM4Wlc;
    double BSIM4Wln;
    double BSIM4Ww;
    double BSIM4Wwc;
    double BSIM4Wwn;
    double BSIM4Wwl;
    double BSIM4Wwlc;
    double BSIM4Wmin;
    double BSIM4Wmax;

    /* added for stress effect */
    double BSIM4saref;
    double BSIM4sbref;
    double BSIM4wlod;
    double BSIM4ku0;
    double BSIM4kvsat;
    double BSIM4kvth0;
    double BSIM4tku0;
    double BSIM4llodku0;
    double BSIM4wlodku0;
    double BSIM4llodvth;
    double BSIM4wlodvth;
    double BSIM4lku0;
    double BSIM4wku0;
    double BSIM4pku0;
    double BSIM4lkvth0;
    double BSIM4wkvth0;
    double BSIM4pkvth0;
    double BSIM4stk2;
    double BSIM4lodk2;
    double BSIM4steta0;
    double BSIM4lodeta0;

    double BSIM4web;
    double BSIM4wec;
    double BSIM4kvth0we;
    double BSIM4k2we;
    double BSIM4ku0we;
    double BSIM4scref;
    double BSIM4wpemod;
    double BSIM4lkvth0we;
    double BSIM4lk2we;
    double BSIM4lku0we;
    double BSIM4wkvth0we;
    double BSIM4wk2we;
    double BSIM4wku0we;
    double BSIM4pkvth0we;
    double BSIM4pk2we;
    double BSIM4pku0we;

/* Pre-calculated constants
 * move to size-dependent param */
    double BSIM4Eg0;
    double BSIM4vtm;
    double BSIM4vtm0;
    double BSIM4coxe;
    double BSIM4coxp;
    double BSIM4cof1;
    double BSIM4cof2;
    double BSIM4cof3;
    double BSIM4cof4;
    double BSIM4vcrit;
    double BSIM4factor1;
    double BSIM4PhiBS;
    double BSIM4PhiBSWS;
    double BSIM4PhiBSWGS;
    double BSIM4SjctTempSatCurDensity;
    double BSIM4SjctSidewallTempSatCurDensity;
    double BSIM4SjctGateSidewallTempSatCurDensity;
    double BSIM4PhiBD;
    double BSIM4PhiBSWD;
    double BSIM4PhiBSWGD;
    double BSIM4DjctTempSatCurDensity;
    double BSIM4DjctSidewallTempSatCurDensity;
    double BSIM4DjctGateSidewallTempSatCurDensity;
    double BSIM4SunitAreaTempJctCap;
    double BSIM4DunitAreaTempJctCap;
    double BSIM4SunitLengthSidewallTempJctCap;
    double BSIM4DunitLengthSidewallTempJctCap;
    double BSIM4SunitLengthGateSidewallTempJctCap;
    double BSIM4DunitLengthGateSidewallTempJctCap;

    double BSIM4oxideTrapDensityA;
    double BSIM4oxideTrapDensityB;
    double BSIM4oxideTrapDensityC;
    double BSIM4em;
    double BSIM4ef;
    double BSIM4af;
    double BSIM4kf;

    double BSIM4vgsMax;
    double BSIM4vgdMax;
    double BSIM4vgbMax;
    double BSIM4vdsMax;
    double BSIM4vbsMax;
    double BSIM4vbdMax;
    double BSIM4vgsrMax;
    double BSIM4vgdrMax;
    double BSIM4vgbrMax;
    double BSIM4vbsrMax;
    double BSIM4vbdrMax;

    struct bsim4SizeDependParam *pSizeDependParamKnot;

#ifdef USE_OMP
    int BSIM4InstCount;
    struct sBSIM4instance **BSIM4InstanceArray;
#endif

    /* Flags */
    unsigned  BSIM4mobModGiven :1;
    unsigned  BSIM4binUnitGiven :1;
    unsigned  BSIM4cvchargeModGiven :1;
    unsigned  BSIM4capModGiven :1;
    unsigned  BSIM4dioModGiven :1;
    unsigned  BSIM4rdsModGiven :1;
    unsigned  BSIM4rbodyModGiven :1;
    unsigned  BSIM4rgateModGiven :1;
    unsigned  BSIM4perModGiven :1;
    unsigned  BSIM4geoModGiven :1;
    unsigned  BSIM4rgeoModGiven :1;
    unsigned  BSIM4paramChkGiven :1;
    unsigned  BSIM4trnqsModGiven :1;
    unsigned  BSIM4acnqsModGiven :1;
    unsigned  BSIM4fnoiModGiven :1;
    unsigned  BSIM4tnoiModGiven :1;
    unsigned  BSIM4mtrlModGiven :1;
    unsigned  BSIM4mtrlCompatModGiven :1;
    unsigned  BSIM4gidlModGiven :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4igcModGiven :1;
    unsigned  BSIM4igbModGiven :1;
    unsigned  BSIM4tempModGiven :1;
    unsigned  BSIM4typeGiven   :1;
    unsigned  BSIM4toxrefGiven   :1;
    unsigned  BSIM4eotGiven   :1;
    unsigned  BSIM4vddeotGiven   :1;
    unsigned  BSIM4tempeotGiven  :1;
    unsigned  BSIM4leffeotGiven  :1;
    unsigned  BSIM4weffeotGiven  :1;
    unsigned  BSIM4adosGiven   :1;
    unsigned  BSIM4bdosGiven   :1;
    unsigned  BSIM4toxeGiven   :1;
    unsigned  BSIM4toxpGiven   :1;
    unsigned  BSIM4toxmGiven   :1;
    unsigned  BSIM4dtoxGiven   :1;
    unsigned  BSIM4epsroxGiven   :1;
    unsigned  BSIM4versionGiven   :1;
    unsigned  BSIM4cdscGiven   :1;
    unsigned  BSIM4cdscbGiven   :1;
    unsigned  BSIM4cdscdGiven   :1;
    unsigned  BSIM4citGiven   :1;
    unsigned  BSIM4nfactorGiven   :1;
    unsigned  BSIM4xjGiven   :1;
    unsigned  BSIM4vsatGiven   :1;
    unsigned  BSIM4atGiven   :1;
    unsigned  BSIM4a0Given   :1;
    unsigned  BSIM4agsGiven   :1;
    unsigned  BSIM4a1Given   :1;
    unsigned  BSIM4a2Given   :1;
    unsigned  BSIM4ketaGiven   :1;
    unsigned  BSIM4nsubGiven   :1;
    unsigned  BSIM4phigGiven   :1;
    unsigned  BSIM4epsrgateGiven   :1;
    unsigned  BSIM4easubGiven   :1;
    unsigned  BSIM4epsrsubGiven   :1;
    unsigned  BSIM4ni0subGiven   :1;
    unsigned  BSIM4bg0subGiven   :1;
    unsigned  BSIM4tbgasubGiven   :1;
    unsigned  BSIM4tbgbsubGiven   :1;
    unsigned  BSIM4ndepGiven   :1;
    unsigned  BSIM4nsdGiven    :1;
    unsigned  BSIM4phinGiven   :1;
    unsigned  BSIM4ngateGiven   :1;
    unsigned  BSIM4gamma1Given   :1;
    unsigned  BSIM4gamma2Given   :1;
    unsigned  BSIM4vbxGiven   :1;
    unsigned  BSIM4vbmGiven   :1;
    unsigned  BSIM4xtGiven   :1;
    unsigned  BSIM4k1Given   :1;
    unsigned  BSIM4kt1Given   :1;
    unsigned  BSIM4kt1lGiven   :1;
    unsigned  BSIM4kt2Given   :1;
    unsigned  BSIM4k2Given   :1;
    unsigned  BSIM4k3Given   :1;
    unsigned  BSIM4k3bGiven   :1;
    unsigned  BSIM4w0Given   :1;
    unsigned  BSIM4dvtp0Given :1;
    unsigned  BSIM4dvtp1Given :1;
    unsigned  BSIM4dvtp2Given :1;        /* New DIBL/Rout */
    unsigned  BSIM4dvtp3Given :1;
    unsigned  BSIM4dvtp4Given :1;
    unsigned  BSIM4dvtp5Given :1;
    unsigned  BSIM4lpe0Given   :1;
    unsigned  BSIM4lpebGiven   :1;
    unsigned  BSIM4dvt0Given   :1;
    unsigned  BSIM4dvt1Given   :1;
    unsigned  BSIM4dvt2Given   :1;
    unsigned  BSIM4dvt0wGiven   :1;
    unsigned  BSIM4dvt1wGiven   :1;
    unsigned  BSIM4dvt2wGiven   :1;
    unsigned  BSIM4droutGiven   :1;
    unsigned  BSIM4dsubGiven   :1;
    unsigned  BSIM4vth0Given   :1;
    unsigned  BSIM4euGiven   :1;
    unsigned  BSIM4ucsGiven  :1;
    unsigned  BSIM4uaGiven   :1;
    unsigned  BSIM4ua1Given   :1;
    unsigned  BSIM4ubGiven   :1;
    unsigned  BSIM4ub1Given   :1;
    unsigned  BSIM4ucGiven   :1;
    unsigned  BSIM4uc1Given   :1;
    unsigned  BSIM4udGiven     :1;
    unsigned  BSIM4ud1Given     :1;
    unsigned  BSIM4upGiven     :1;
    unsigned  BSIM4lpGiven     :1;
    unsigned  BSIM4u0Given   :1;
    unsigned  BSIM4uteGiven   :1;
    unsigned  BSIM4ucsteGiven :1;
    unsigned  BSIM4voffGiven   :1;
    unsigned  BSIM4tvoffGiven   :1;
    unsigned  BSIM4tnfactorGiven  :1;         /* v4.7 Temp dep of leakage current */
    unsigned  BSIM4teta0Given   :1;           /* v4.7 temp dep of leakage current */
    unsigned  BSIM4tvoffcvGiven   :1;        /* v4.7 temp dep of leakage current */
    unsigned  BSIM4vofflGiven  :1;
    unsigned  BSIM4voffcvlGiven  :1;
    unsigned  BSIM4minvGiven   :1;
    unsigned  BSIM4minvcvGiven   :1;
    unsigned  BSIM4rdswGiven   :1;
    unsigned  BSIM4rdswminGiven :1;
    unsigned  BSIM4rdwminGiven :1;
    unsigned  BSIM4rswminGiven :1;
    unsigned  BSIM4rswGiven   :1;
    unsigned  BSIM4rdwGiven   :1;
    unsigned  BSIM4prwgGiven   :1;
    unsigned  BSIM4prwbGiven   :1;
    unsigned  BSIM4prtGiven   :1;
    unsigned  BSIM4eta0Given   :1;
    unsigned  BSIM4etabGiven   :1;
    unsigned  BSIM4pclmGiven   :1;
    unsigned  BSIM4pdibl1Given   :1;
    unsigned  BSIM4pdibl2Given   :1;
    unsigned  BSIM4pdiblbGiven   :1;
    unsigned  BSIM4fproutGiven   :1;
    unsigned  BSIM4pditsGiven    :1;
    unsigned  BSIM4pditsdGiven    :1;
    unsigned  BSIM4pditslGiven    :1;
    unsigned  BSIM4pscbe1Given   :1;
    unsigned  BSIM4pscbe2Given   :1;
    unsigned  BSIM4pvagGiven   :1;
    unsigned  BSIM4deltaGiven  :1;
    unsigned  BSIM4wrGiven   :1;
    unsigned  BSIM4dwgGiven   :1;
    unsigned  BSIM4dwbGiven   :1;
    unsigned  BSIM4b0Given   :1;
    unsigned  BSIM4b1Given   :1;
    unsigned  BSIM4alpha0Given   :1;
    unsigned  BSIM4alpha1Given   :1;
    unsigned  BSIM4beta0Given   :1;
    unsigned  BSIM4agidlGiven   :1;
    unsigned  BSIM4bgidlGiven   :1;
    unsigned  BSIM4cgidlGiven   :1;
    unsigned  BSIM4egidlGiven   :1;
    unsigned  BSIM4fgidlGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4kgidlGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4rgidlGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4agislGiven   :1;
    unsigned  BSIM4bgislGiven   :1;
    unsigned  BSIM4cgislGiven   :1;
    unsigned  BSIM4egislGiven   :1;
    unsigned  BSIM4fgislGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4kgislGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4rgislGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4aigcGiven   :1;
    unsigned  BSIM4bigcGiven   :1;
    unsigned  BSIM4cigcGiven   :1;
    unsigned  BSIM4aigsdGiven   :1;
    unsigned  BSIM4bigsdGiven   :1;
    unsigned  BSIM4cigsdGiven   :1;
    unsigned  BSIM4aigsGiven   :1;
    unsigned  BSIM4bigsGiven   :1;
    unsigned  BSIM4cigsGiven   :1;
    unsigned  BSIM4aigdGiven   :1;
    unsigned  BSIM4bigdGiven   :1;
    unsigned  BSIM4cigdGiven   :1;
    unsigned  BSIM4aigbaccGiven   :1;
    unsigned  BSIM4bigbaccGiven   :1;
    unsigned  BSIM4cigbaccGiven   :1;
    unsigned  BSIM4aigbinvGiven   :1;
    unsigned  BSIM4bigbinvGiven   :1;
    unsigned  BSIM4cigbinvGiven   :1;
    unsigned  BSIM4nigcGiven   :1;
    unsigned  BSIM4nigbinvGiven   :1;
    unsigned  BSIM4nigbaccGiven   :1;
    unsigned  BSIM4ntoxGiven   :1;
    unsigned  BSIM4eigbinvGiven   :1;
    unsigned  BSIM4pigcdGiven   :1;
    unsigned  BSIM4poxedgeGiven   :1;
    unsigned  BSIM4ijthdfwdGiven  :1;
    unsigned  BSIM4ijthsfwdGiven  :1;
    unsigned  BSIM4ijthdrevGiven  :1;
    unsigned  BSIM4ijthsrevGiven  :1;
    unsigned  BSIM4xjbvdGiven   :1;
    unsigned  BSIM4xjbvsGiven   :1;
    unsigned  BSIM4bvdGiven   :1;
    unsigned  BSIM4bvsGiven   :1;

    unsigned  BSIM4jtssGiven   :1;
    unsigned  BSIM4jtsdGiven   :1;
    unsigned  BSIM4jtsswsGiven   :1;
    unsigned  BSIM4jtsswdGiven   :1;
    unsigned  BSIM4jtsswgsGiven   :1;
    unsigned  BSIM4jtsswgdGiven   :1;
        unsigned  BSIM4jtweffGiven    :1;
    unsigned  BSIM4njtsGiven   :1;
    unsigned  BSIM4njtsswGiven   :1;
    unsigned  BSIM4njtsswgGiven   :1;
    unsigned  BSIM4njtsdGiven   :1;
    unsigned  BSIM4njtsswdGiven   :1;
    unsigned  BSIM4njtsswgdGiven   :1;
    unsigned  BSIM4xtssGiven   :1;
    unsigned  BSIM4xtsdGiven   :1;
    unsigned  BSIM4xtsswsGiven   :1;
    unsigned  BSIM4xtsswdGiven   :1;
    unsigned  BSIM4xtsswgsGiven   :1;
    unsigned  BSIM4xtsswgdGiven   :1;
    unsigned  BSIM4tnjtsGiven   :1;
    unsigned  BSIM4tnjtsswGiven   :1;
    unsigned  BSIM4tnjtsswgGiven   :1;
    unsigned  BSIM4tnjtsdGiven   :1;
    unsigned  BSIM4tnjtsswdGiven   :1;
    unsigned  BSIM4tnjtsswgdGiven   :1;
    unsigned  BSIM4vtssGiven   :1;
    unsigned  BSIM4vtsdGiven   :1;
    unsigned  BSIM4vtsswsGiven   :1;
    unsigned  BSIM4vtsswdGiven   :1;
    unsigned  BSIM4vtsswgsGiven   :1;
    unsigned  BSIM4vtsswgdGiven   :1;

    unsigned  BSIM4vfbGiven   :1;
    unsigned  BSIM4gbminGiven :1;
    unsigned  BSIM4rbdbGiven :1;
    unsigned  BSIM4rbsbGiven :1;
    unsigned  BSIM4rbpsGiven :1;
    unsigned  BSIM4rbpdGiven :1;
    unsigned  BSIM4rbpbGiven :1;

    unsigned BSIM4rbps0Given :1;
    unsigned BSIM4rbpslGiven :1;
    unsigned BSIM4rbpswGiven :1;
    unsigned BSIM4rbpsnfGiven :1;

    unsigned BSIM4rbpd0Given :1;
    unsigned BSIM4rbpdlGiven :1;
    unsigned BSIM4rbpdwGiven :1;
    unsigned BSIM4rbpdnfGiven :1;

    unsigned BSIM4rbpbx0Given :1;
    unsigned BSIM4rbpbxlGiven :1;
    unsigned BSIM4rbpbxwGiven :1;
    unsigned BSIM4rbpbxnfGiven :1;
    unsigned BSIM4rbpby0Given :1;
    unsigned BSIM4rbpbylGiven :1;
    unsigned BSIM4rbpbywGiven :1;
    unsigned BSIM4rbpbynfGiven :1;

    unsigned BSIM4rbsbx0Given :1;
    unsigned BSIM4rbsby0Given :1;
    unsigned BSIM4rbdbx0Given :1;
    unsigned BSIM4rbdby0Given :1;

    unsigned BSIM4rbsdbxlGiven :1;
    unsigned BSIM4rbsdbxwGiven :1;
    unsigned BSIM4rbsdbxnfGiven :1;
    unsigned BSIM4rbsdbylGiven :1;
    unsigned BSIM4rbsdbywGiven :1;
    unsigned BSIM4rbsdbynfGiven :1;

    unsigned  BSIM4xrcrg1Given   :1;
    unsigned  BSIM4xrcrg2Given   :1;
    unsigned  BSIM4tnoiaGiven    :1;
    unsigned  BSIM4tnoibGiven    :1;
    unsigned  BSIM4tnoicGiven    :1;
    unsigned  BSIM4rnoiaGiven    :1;
    unsigned  BSIM4rnoibGiven    :1;
    unsigned  BSIM4rnoicGiven    :1;
    unsigned  BSIM4ntnoiGiven    :1;

    unsigned  BSIM4lambdaGiven    :1;
    unsigned  BSIM4vtlGiven    :1;
    unsigned  BSIM4lcGiven    :1;
    unsigned  BSIM4xnGiven    :1;
    unsigned  BSIM4vfbsdoffGiven    :1;
    unsigned  BSIM4lintnoiGiven    :1;
    unsigned  BSIM4tvfbsdoffGiven    :1;

    /* CV model and parasitics */
    unsigned  BSIM4cgslGiven   :1;
    unsigned  BSIM4cgdlGiven   :1;
    unsigned  BSIM4ckappasGiven   :1;
    unsigned  BSIM4ckappadGiven   :1;
    unsigned  BSIM4cfGiven   :1;
    unsigned  BSIM4vfbcvGiven   :1;
    unsigned  BSIM4clcGiven   :1;
    unsigned  BSIM4cleGiven   :1;
    unsigned  BSIM4dwcGiven   :1;
    unsigned  BSIM4dlcGiven   :1;
    unsigned  BSIM4xwGiven    :1;
    unsigned  BSIM4xlGiven    :1;
    unsigned  BSIM4dlcigGiven   :1;
    unsigned  BSIM4dlcigdGiven   :1;
    unsigned  BSIM4dwjGiven   :1;
    unsigned  BSIM4noffGiven  :1;
    unsigned  BSIM4voffcvGiven :1;
    unsigned  BSIM4acdeGiven  :1;
    unsigned  BSIM4moinGiven  :1;
    unsigned  BSIM4tcjGiven   :1;
    unsigned  BSIM4tcjswGiven :1;
    unsigned  BSIM4tcjswgGiven :1;
    unsigned  BSIM4tpbGiven    :1;
    unsigned  BSIM4tpbswGiven  :1;
    unsigned  BSIM4tpbswgGiven :1;
    unsigned  BSIM4dmcgGiven :1;
    unsigned  BSIM4dmciGiven :1;
    unsigned  BSIM4dmdgGiven :1;
    unsigned  BSIM4dmcgtGiven :1;
    unsigned  BSIM4xgwGiven :1;
    unsigned  BSIM4xglGiven :1;
    unsigned  BSIM4rshgGiven :1;
    unsigned  BSIM4ngconGiven :1;


    /* Length dependence */
    unsigned  BSIM4lcdscGiven   :1;
    unsigned  BSIM4lcdscbGiven   :1;
    unsigned  BSIM4lcdscdGiven   :1;
    unsigned  BSIM4lcitGiven   :1;
    unsigned  BSIM4lnfactorGiven   :1;
    unsigned  BSIM4lxjGiven   :1;
    unsigned  BSIM4lvsatGiven   :1;
    unsigned  BSIM4latGiven   :1;
    unsigned  BSIM4la0Given   :1;
    unsigned  BSIM4lagsGiven   :1;
    unsigned  BSIM4la1Given   :1;
    unsigned  BSIM4la2Given   :1;
    unsigned  BSIM4lketaGiven   :1;
    unsigned  BSIM4lnsubGiven   :1;
    unsigned  BSIM4lndepGiven   :1;
    unsigned  BSIM4lnsdGiven    :1;
    unsigned  BSIM4lphinGiven   :1;
    unsigned  BSIM4lngateGiven   :1;
    unsigned  BSIM4lgamma1Given   :1;
    unsigned  BSIM4lgamma2Given   :1;
    unsigned  BSIM4lvbxGiven   :1;
    unsigned  BSIM4lvbmGiven   :1;
    unsigned  BSIM4lxtGiven   :1;
    unsigned  BSIM4lk1Given   :1;
    unsigned  BSIM4lkt1Given   :1;
    unsigned  BSIM4lkt1lGiven   :1;
    unsigned  BSIM4lkt2Given   :1;
    unsigned  BSIM4lk2Given   :1;
    unsigned  BSIM4lk3Given   :1;
    unsigned  BSIM4lk3bGiven   :1;
    unsigned  BSIM4lw0Given   :1;
    unsigned  BSIM4ldvtp0Given :1;
    unsigned  BSIM4ldvtp1Given :1;
    unsigned  BSIM4ldvtp2Given :1;        /* New DIBL/Rout */
    unsigned  BSIM4ldvtp3Given :1;
    unsigned  BSIM4ldvtp4Given :1;
    unsigned  BSIM4ldvtp5Given :1;
    unsigned  BSIM4llpe0Given   :1;
    unsigned  BSIM4llpebGiven   :1;
    unsigned  BSIM4ldvt0Given   :1;
    unsigned  BSIM4ldvt1Given   :1;
    unsigned  BSIM4ldvt2Given   :1;
    unsigned  BSIM4ldvt0wGiven   :1;
    unsigned  BSIM4ldvt1wGiven   :1;
    unsigned  BSIM4ldvt2wGiven   :1;
    unsigned  BSIM4ldroutGiven   :1;
    unsigned  BSIM4ldsubGiven   :1;
    unsigned  BSIM4lvth0Given   :1;
    unsigned  BSIM4luaGiven   :1;
    unsigned  BSIM4lua1Given   :1;
    unsigned  BSIM4lubGiven   :1;
    unsigned  BSIM4lub1Given   :1;
    unsigned  BSIM4lucGiven   :1;
    unsigned  BSIM4luc1Given   :1;
    unsigned  BSIM4ludGiven     :1;
    unsigned  BSIM4lud1Given     :1;
    unsigned  BSIM4lupGiven     :1;
    unsigned  BSIM4llpGiven     :1;
    unsigned  BSIM4lu0Given   :1;
    unsigned  BSIM4leuGiven   :1;
        unsigned  BSIM4lucsGiven   :1;
    unsigned  BSIM4luteGiven   :1;
        unsigned  BSIM4lucsteGiven  :1;
    unsigned  BSIM4lvoffGiven   :1;
    unsigned  BSIM4ltvoffGiven   :1;
    unsigned  BSIM4ltnfactorGiven  :1;         /* v4.7 Temp dep of leakage current */
    unsigned  BSIM4lteta0Given   :1;           /* v4.7 temp dep of leakage current */
    unsigned  BSIM4ltvoffcvGiven   :1;        /* v4.7 temp dep of leakage current */
    unsigned  BSIM4lminvGiven   :1;
    unsigned  BSIM4lminvcvGiven   :1;
    unsigned  BSIM4lrdswGiven   :1;
    unsigned  BSIM4lrswGiven   :1;
    unsigned  BSIM4lrdwGiven   :1;
    unsigned  BSIM4lprwgGiven   :1;
    unsigned  BSIM4lprwbGiven   :1;
    unsigned  BSIM4lprtGiven   :1;
    unsigned  BSIM4leta0Given   :1;
    unsigned  BSIM4letabGiven   :1;
    unsigned  BSIM4lpclmGiven   :1;
    unsigned  BSIM4lpdibl1Given   :1;
    unsigned  BSIM4lpdibl2Given   :1;
    unsigned  BSIM4lpdiblbGiven   :1;
    unsigned  BSIM4lfproutGiven   :1;
    unsigned  BSIM4lpditsGiven    :1;
    unsigned  BSIM4lpditsdGiven    :1;
    unsigned  BSIM4lpscbe1Given   :1;
    unsigned  BSIM4lpscbe2Given   :1;
    unsigned  BSIM4lpvagGiven   :1;
    unsigned  BSIM4ldeltaGiven  :1;
    unsigned  BSIM4lwrGiven   :1;
    unsigned  BSIM4ldwgGiven   :1;
    unsigned  BSIM4ldwbGiven   :1;
    unsigned  BSIM4lb0Given   :1;
    unsigned  BSIM4lb1Given   :1;
    unsigned  BSIM4lalpha0Given   :1;
    unsigned  BSIM4lalpha1Given   :1;
    unsigned  BSIM4lbeta0Given   :1;
    unsigned  BSIM4lvfbGiven   :1;
    unsigned  BSIM4lagidlGiven   :1;
    unsigned  BSIM4lbgidlGiven   :1;
    unsigned  BSIM4lcgidlGiven   :1;
    unsigned  BSIM4legidlGiven   :1;
    unsigned  BSIM4lfgidlGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4lkgidlGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4lrgidlGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4lagislGiven   :1;
    unsigned  BSIM4lbgislGiven   :1;
    unsigned  BSIM4lcgislGiven   :1;
    unsigned  BSIM4legislGiven   :1;
    unsigned  BSIM4lfgislGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4lkgislGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4lrgislGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4laigcGiven   :1;
    unsigned  BSIM4lbigcGiven   :1;
    unsigned  BSIM4lcigcGiven   :1;
    unsigned  BSIM4laigsdGiven   :1;
    unsigned  BSIM4lbigsdGiven   :1;
    unsigned  BSIM4lcigsdGiven   :1;
    unsigned  BSIM4laigsGiven   :1;
    unsigned  BSIM4lbigsGiven   :1;
    unsigned  BSIM4lcigsGiven   :1;
    unsigned  BSIM4laigdGiven   :1;
    unsigned  BSIM4lbigdGiven   :1;
    unsigned  BSIM4lcigdGiven   :1;
    unsigned  BSIM4laigbaccGiven   :1;
    unsigned  BSIM4lbigbaccGiven   :1;
    unsigned  BSIM4lcigbaccGiven   :1;
    unsigned  BSIM4laigbinvGiven   :1;
    unsigned  BSIM4lbigbinvGiven   :1;
    unsigned  BSIM4lcigbinvGiven   :1;
    unsigned  BSIM4lnigcGiven   :1;
    unsigned  BSIM4lnigbinvGiven   :1;
    unsigned  BSIM4lnigbaccGiven   :1;
    unsigned  BSIM4lntoxGiven   :1;
    unsigned  BSIM4leigbinvGiven   :1;
    unsigned  BSIM4lpigcdGiven   :1;
    unsigned  BSIM4lpoxedgeGiven   :1;
    unsigned  BSIM4lxrcrg1Given   :1;
    unsigned  BSIM4lxrcrg2Given   :1;
    unsigned  BSIM4llambdaGiven    :1;
    unsigned  BSIM4lvtlGiven    :1;
    unsigned  BSIM4lxnGiven    :1;
    unsigned  BSIM4lvfbsdoffGiven    :1;
    unsigned  BSIM4ltvfbsdoffGiven    :1;

    /* CV model */
    unsigned  BSIM4lcgslGiven   :1;
    unsigned  BSIM4lcgdlGiven   :1;
    unsigned  BSIM4lckappasGiven   :1;
    unsigned  BSIM4lckappadGiven   :1;
    unsigned  BSIM4lcfGiven   :1;
    unsigned  BSIM4lclcGiven   :1;
    unsigned  BSIM4lcleGiven   :1;
    unsigned  BSIM4lvfbcvGiven   :1;
    unsigned  BSIM4lnoffGiven   :1;
    unsigned  BSIM4lvoffcvGiven :1;
    unsigned  BSIM4lacdeGiven   :1;
    unsigned  BSIM4lmoinGiven   :1;

    /* Width dependence */
    unsigned  BSIM4wcdscGiven   :1;
    unsigned  BSIM4wcdscbGiven   :1;
    unsigned  BSIM4wcdscdGiven   :1;
    unsigned  BSIM4wcitGiven   :1;
    unsigned  BSIM4wnfactorGiven   :1;
    unsigned  BSIM4wxjGiven   :1;
    unsigned  BSIM4wvsatGiven   :1;
    unsigned  BSIM4watGiven   :1;
    unsigned  BSIM4wa0Given   :1;
    unsigned  BSIM4wagsGiven   :1;
    unsigned  BSIM4wa1Given   :1;
    unsigned  BSIM4wa2Given   :1;
    unsigned  BSIM4wketaGiven   :1;
    unsigned  BSIM4wnsubGiven   :1;
    unsigned  BSIM4wndepGiven   :1;
    unsigned  BSIM4wnsdGiven    :1;
    unsigned  BSIM4wphinGiven   :1;
    unsigned  BSIM4wngateGiven   :1;
    unsigned  BSIM4wgamma1Given   :1;
    unsigned  BSIM4wgamma2Given   :1;
    unsigned  BSIM4wvbxGiven   :1;
    unsigned  BSIM4wvbmGiven   :1;
    unsigned  BSIM4wxtGiven   :1;
    unsigned  BSIM4wk1Given   :1;
    unsigned  BSIM4wkt1Given   :1;
    unsigned  BSIM4wkt1lGiven   :1;
    unsigned  BSIM4wkt2Given   :1;
    unsigned  BSIM4wk2Given   :1;
    unsigned  BSIM4wk3Given   :1;
    unsigned  BSIM4wk3bGiven   :1;
    unsigned  BSIM4ww0Given   :1;
    unsigned  BSIM4wdvtp0Given :1;
    unsigned  BSIM4wdvtp1Given :1;
    unsigned  BSIM4wdvtp2Given :1;        /* New DIBL/Rout */
    unsigned  BSIM4wdvtp3Given :1;
    unsigned  BSIM4wdvtp4Given :1;
    unsigned  BSIM4wdvtp5Given :1;
    unsigned  BSIM4wlpe0Given   :1;
    unsigned  BSIM4wlpebGiven   :1;
    unsigned  BSIM4wdvt0Given   :1;
    unsigned  BSIM4wdvt1Given   :1;
    unsigned  BSIM4wdvt2Given   :1;
    unsigned  BSIM4wdvt0wGiven   :1;
    unsigned  BSIM4wdvt1wGiven   :1;
    unsigned  BSIM4wdvt2wGiven   :1;
    unsigned  BSIM4wdroutGiven   :1;
    unsigned  BSIM4wdsubGiven   :1;
    unsigned  BSIM4wvth0Given   :1;
    unsigned  BSIM4wuaGiven   :1;
    unsigned  BSIM4wua1Given   :1;
    unsigned  BSIM4wubGiven   :1;
    unsigned  BSIM4wub1Given   :1;
    unsigned  BSIM4wucGiven   :1;
    unsigned  BSIM4wuc1Given   :1;
    unsigned  BSIM4wudGiven     :1;
    unsigned  BSIM4wud1Given     :1;
    unsigned  BSIM4wupGiven     :1;
    unsigned  BSIM4wlpGiven     :1;
    unsigned  BSIM4wu0Given   :1;
    unsigned  BSIM4weuGiven   :1;
        unsigned  BSIM4wucsGiven  :1;
    unsigned  BSIM4wuteGiven   :1;
        unsigned  BSIM4wucsteGiven  :1;
    unsigned  BSIM4wvoffGiven   :1;
    unsigned  BSIM4wtvoffGiven   :1;
    unsigned  BSIM4wtnfactorGiven  :1;         /* v4.7 Temp dep of leakage current */
    unsigned  BSIM4wteta0Given   :1;           /* v4.7 temp dep of leakage current */
    unsigned  BSIM4wtvoffcvGiven   :1;        /* v4.7 temp dep of leakage current */
    unsigned  BSIM4wminvGiven   :1;
    unsigned  BSIM4wminvcvGiven   :1;
    unsigned  BSIM4wrdswGiven   :1;
    unsigned  BSIM4wrswGiven   :1;
    unsigned  BSIM4wrdwGiven   :1;
    unsigned  BSIM4wprwgGiven   :1;
    unsigned  BSIM4wprwbGiven   :1;
    unsigned  BSIM4wprtGiven   :1;
    unsigned  BSIM4weta0Given   :1;
    unsigned  BSIM4wetabGiven   :1;
    unsigned  BSIM4wpclmGiven   :1;
    unsigned  BSIM4wpdibl1Given   :1;
    unsigned  BSIM4wpdibl2Given   :1;
    unsigned  BSIM4wpdiblbGiven   :1;
    unsigned  BSIM4wfproutGiven   :1;
    unsigned  BSIM4wpditsGiven    :1;
    unsigned  BSIM4wpditsdGiven    :1;
    unsigned  BSIM4wpscbe1Given   :1;
    unsigned  BSIM4wpscbe2Given   :1;
    unsigned  BSIM4wpvagGiven   :1;
    unsigned  BSIM4wdeltaGiven  :1;
    unsigned  BSIM4wwrGiven   :1;
    unsigned  BSIM4wdwgGiven   :1;
    unsigned  BSIM4wdwbGiven   :1;
    unsigned  BSIM4wb0Given   :1;
    unsigned  BSIM4wb1Given   :1;
    unsigned  BSIM4walpha0Given   :1;
    unsigned  BSIM4walpha1Given   :1;
    unsigned  BSIM4wbeta0Given   :1;
    unsigned  BSIM4wvfbGiven   :1;
    unsigned  BSIM4wagidlGiven   :1;
    unsigned  BSIM4wbgidlGiven   :1;
    unsigned  BSIM4wcgidlGiven   :1;
    unsigned  BSIM4wegidlGiven   :1;
    unsigned  BSIM4wfgidlGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4wkgidlGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4wrgidlGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4wagislGiven   :1;
    unsigned  BSIM4wbgislGiven   :1;
    unsigned  BSIM4wcgislGiven   :1;
    unsigned  BSIM4wegislGiven   :1;
    unsigned  BSIM4wfgislGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4wkgislGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4wrgislGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4waigcGiven   :1;
    unsigned  BSIM4wbigcGiven   :1;
    unsigned  BSIM4wcigcGiven   :1;
    unsigned  BSIM4waigsdGiven   :1;
    unsigned  BSIM4wbigsdGiven   :1;
    unsigned  BSIM4wcigsdGiven   :1;
    unsigned  BSIM4waigsGiven   :1;
    unsigned  BSIM4wbigsGiven   :1;
    unsigned  BSIM4wcigsGiven   :1;
    unsigned  BSIM4waigdGiven   :1;
    unsigned  BSIM4wbigdGiven   :1;
    unsigned  BSIM4wcigdGiven   :1;
    unsigned  BSIM4waigbaccGiven   :1;
    unsigned  BSIM4wbigbaccGiven   :1;
    unsigned  BSIM4wcigbaccGiven   :1;
    unsigned  BSIM4waigbinvGiven   :1;
    unsigned  BSIM4wbigbinvGiven   :1;
    unsigned  BSIM4wcigbinvGiven   :1;
    unsigned  BSIM4wnigcGiven   :1;
    unsigned  BSIM4wnigbinvGiven   :1;
    unsigned  BSIM4wnigbaccGiven   :1;
    unsigned  BSIM4wntoxGiven   :1;
    unsigned  BSIM4weigbinvGiven   :1;
    unsigned  BSIM4wpigcdGiven   :1;
    unsigned  BSIM4wpoxedgeGiven   :1;
    unsigned  BSIM4wxrcrg1Given   :1;
    unsigned  BSIM4wxrcrg2Given   :1;
    unsigned  BSIM4wlambdaGiven    :1;
    unsigned  BSIM4wvtlGiven    :1;
    unsigned  BSIM4wxnGiven    :1;
    unsigned  BSIM4wvfbsdoffGiven    :1;
    unsigned  BSIM4wtvfbsdoffGiven    :1;

    /* CV model */
    unsigned  BSIM4wcgslGiven   :1;
    unsigned  BSIM4wcgdlGiven   :1;
    unsigned  BSIM4wckappasGiven   :1;
    unsigned  BSIM4wckappadGiven   :1;
    unsigned  BSIM4wcfGiven   :1;
    unsigned  BSIM4wclcGiven   :1;
    unsigned  BSIM4wcleGiven   :1;
    unsigned  BSIM4wvfbcvGiven   :1;
    unsigned  BSIM4wnoffGiven   :1;
    unsigned  BSIM4wvoffcvGiven :1;
    unsigned  BSIM4wacdeGiven   :1;
    unsigned  BSIM4wmoinGiven   :1;

    /* Cross-term dependence */
    unsigned  BSIM4pcdscGiven   :1;
    unsigned  BSIM4pcdscbGiven   :1;
    unsigned  BSIM4pcdscdGiven   :1;
    unsigned  BSIM4pcitGiven   :1;
    unsigned  BSIM4pnfactorGiven   :1;
    unsigned  BSIM4pxjGiven   :1;
    unsigned  BSIM4pvsatGiven   :1;
    unsigned  BSIM4patGiven   :1;
    unsigned  BSIM4pa0Given   :1;
    unsigned  BSIM4pagsGiven   :1;
    unsigned  BSIM4pa1Given   :1;
    unsigned  BSIM4pa2Given   :1;
    unsigned  BSIM4pketaGiven   :1;
    unsigned  BSIM4pnsubGiven   :1;
    unsigned  BSIM4pndepGiven   :1;
    unsigned  BSIM4pnsdGiven    :1;
    unsigned  BSIM4pphinGiven   :1;
    unsigned  BSIM4pngateGiven   :1;
    unsigned  BSIM4pgamma1Given   :1;
    unsigned  BSIM4pgamma2Given   :1;
    unsigned  BSIM4pvbxGiven   :1;
    unsigned  BSIM4pvbmGiven   :1;
    unsigned  BSIM4pxtGiven   :1;
    unsigned  BSIM4pk1Given   :1;
    unsigned  BSIM4pkt1Given   :1;
    unsigned  BSIM4pkt1lGiven   :1;
    unsigned  BSIM4pkt2Given   :1;
    unsigned  BSIM4pk2Given   :1;
    unsigned  BSIM4pk3Given   :1;
    unsigned  BSIM4pk3bGiven   :1;
    unsigned  BSIM4pw0Given   :1;
    unsigned  BSIM4pdvtp0Given :1;
    unsigned  BSIM4pdvtp1Given :1;
    unsigned  BSIM4pdvtp2Given :1;        /* New DIBL/Rout */
    unsigned  BSIM4pdvtp3Given :1;
    unsigned  BSIM4pdvtp4Given :1;
    unsigned  BSIM4pdvtp5Given :1;
    unsigned  BSIM4plpe0Given   :1;
    unsigned  BSIM4plpebGiven   :1;
    unsigned  BSIM4pdvt0Given   :1;
    unsigned  BSIM4pdvt1Given   :1;
    unsigned  BSIM4pdvt2Given   :1;
    unsigned  BSIM4pdvt0wGiven   :1;
    unsigned  BSIM4pdvt1wGiven   :1;
    unsigned  BSIM4pdvt2wGiven   :1;
    unsigned  BSIM4pdroutGiven   :1;
    unsigned  BSIM4pdsubGiven   :1;
    unsigned  BSIM4pvth0Given   :1;
    unsigned  BSIM4puaGiven   :1;
    unsigned  BSIM4pua1Given   :1;
    unsigned  BSIM4pubGiven   :1;
    unsigned  BSIM4pub1Given   :1;
    unsigned  BSIM4pucGiven   :1;
    unsigned  BSIM4puc1Given   :1;
    unsigned  BSIM4pudGiven     :1;
    unsigned  BSIM4pud1Given     :1;
    unsigned  BSIM4pupGiven     :1;
    unsigned  BSIM4plpGiven     :1;
    unsigned  BSIM4pu0Given   :1;
    unsigned  BSIM4peuGiven   :1;
        unsigned  BSIM4pucsGiven   :1;
    unsigned  BSIM4puteGiven   :1;
        unsigned  BSIM4pucsteGiven  :1;
    unsigned  BSIM4pvoffGiven   :1;
    unsigned  BSIM4ptvoffGiven   :1;
    unsigned  BSIM4ptnfactorGiven  :1;         /* v4.7 Temp dep of leakage current */
    unsigned  BSIM4pteta0Given   :1;           /* v4.7 temp dep of leakage current */
    unsigned  BSIM4ptvoffcvGiven   :1;        /* v4.7 temp dep of leakage current */
    unsigned  BSIM4pminvGiven   :1;
    unsigned  BSIM4pminvcvGiven   :1;
    unsigned  BSIM4prdswGiven   :1;
    unsigned  BSIM4prswGiven   :1;
    unsigned  BSIM4prdwGiven   :1;
    unsigned  BSIM4pprwgGiven   :1;
    unsigned  BSIM4pprwbGiven   :1;
    unsigned  BSIM4pprtGiven   :1;
    unsigned  BSIM4peta0Given   :1;
    unsigned  BSIM4petabGiven   :1;
    unsigned  BSIM4ppclmGiven   :1;
    unsigned  BSIM4ppdibl1Given   :1;
    unsigned  BSIM4ppdibl2Given   :1;
    unsigned  BSIM4ppdiblbGiven   :1;
    unsigned  BSIM4pfproutGiven   :1;
    unsigned  BSIM4ppditsGiven    :1;
    unsigned  BSIM4ppditsdGiven    :1;
    unsigned  BSIM4ppscbe1Given   :1;
    unsigned  BSIM4ppscbe2Given   :1;
    unsigned  BSIM4ppvagGiven   :1;
    unsigned  BSIM4pdeltaGiven  :1;
    unsigned  BSIM4pwrGiven   :1;
    unsigned  BSIM4pdwgGiven   :1;
    unsigned  BSIM4pdwbGiven   :1;
    unsigned  BSIM4pb0Given   :1;
    unsigned  BSIM4pb1Given   :1;
    unsigned  BSIM4palpha0Given   :1;
    unsigned  BSIM4palpha1Given   :1;
    unsigned  BSIM4pbeta0Given   :1;
    unsigned  BSIM4pvfbGiven   :1;
    unsigned  BSIM4pagidlGiven   :1;
    unsigned  BSIM4pbgidlGiven   :1;
    unsigned  BSIM4pcgidlGiven   :1;
    unsigned  BSIM4pegidlGiven   :1;
    unsigned  BSIM4pfgidlGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4pkgidlGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4prgidlGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4pagislGiven   :1;
    unsigned  BSIM4pbgislGiven   :1;
    unsigned  BSIM4pcgislGiven   :1;
    unsigned  BSIM4pegislGiven   :1;
    unsigned  BSIM4pfgislGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4pkgislGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4prgislGiven   :1;    /* v4.7 New GIDL/GISL */
    unsigned  BSIM4paigcGiven   :1;
    unsigned  BSIM4pbigcGiven   :1;
    unsigned  BSIM4pcigcGiven   :1;
    unsigned  BSIM4paigsdGiven   :1;
    unsigned  BSIM4pbigsdGiven   :1;
    unsigned  BSIM4pcigsdGiven   :1;
    unsigned  BSIM4paigsGiven   :1;
    unsigned  BSIM4pbigsGiven   :1;
    unsigned  BSIM4pcigsGiven   :1;
    unsigned  BSIM4paigdGiven   :1;
    unsigned  BSIM4pbigdGiven   :1;
    unsigned  BSIM4pcigdGiven   :1;
    unsigned  BSIM4paigbaccGiven   :1;
    unsigned  BSIM4pbigbaccGiven   :1;
    unsigned  BSIM4pcigbaccGiven   :1;
    unsigned  BSIM4paigbinvGiven   :1;
    unsigned  BSIM4pbigbinvGiven   :1;
    unsigned  BSIM4pcigbinvGiven   :1;
    unsigned  BSIM4pnigcGiven   :1;
    unsigned  BSIM4pnigbinvGiven   :1;
    unsigned  BSIM4pnigbaccGiven   :1;
    unsigned  BSIM4pntoxGiven   :1;
    unsigned  BSIM4peigbinvGiven   :1;
    unsigned  BSIM4ppigcdGiven   :1;
    unsigned  BSIM4ppoxedgeGiven   :1;
    unsigned  BSIM4pxrcrg1Given   :1;
    unsigned  BSIM4pxrcrg2Given   :1;
    unsigned  BSIM4plambdaGiven    :1;
    unsigned  BSIM4pvtlGiven    :1;
    unsigned  BSIM4pxnGiven    :1;
    unsigned  BSIM4pvfbsdoffGiven    :1;
    unsigned  BSIM4ptvfbsdoffGiven    :1;

    /* CV model */
    unsigned  BSIM4pcgslGiven   :1;
    unsigned  BSIM4pcgdlGiven   :1;
    unsigned  BSIM4pckappasGiven   :1;
    unsigned  BSIM4pckappadGiven   :1;
    unsigned  BSIM4pcfGiven   :1;
    unsigned  BSIM4pclcGiven   :1;
    unsigned  BSIM4pcleGiven   :1;
    unsigned  BSIM4pvfbcvGiven   :1;
    unsigned  BSIM4pnoffGiven   :1;
    unsigned  BSIM4pvoffcvGiven :1;
    unsigned  BSIM4pacdeGiven   :1;
    unsigned  BSIM4pmoinGiven   :1;

    unsigned  BSIM4useFringeGiven   :1;

    unsigned  BSIM4tnomGiven   :1;
    unsigned  BSIM4cgsoGiven   :1;
    unsigned  BSIM4cgdoGiven   :1;
    unsigned  BSIM4cgboGiven   :1;
    unsigned  BSIM4xpartGiven   :1;
    unsigned  BSIM4sheetResistanceGiven   :1;

    unsigned  BSIM4SjctSatCurDensityGiven   :1;
    unsigned  BSIM4SjctSidewallSatCurDensityGiven   :1;
    unsigned  BSIM4SjctGateSidewallSatCurDensityGiven   :1;
    unsigned  BSIM4SbulkJctPotentialGiven   :1;
    unsigned  BSIM4SbulkJctBotGradingCoeffGiven   :1;
    unsigned  BSIM4SsidewallJctPotentialGiven   :1;
    unsigned  BSIM4SGatesidewallJctPotentialGiven   :1;
    unsigned  BSIM4SbulkJctSideGradingCoeffGiven   :1;
    unsigned  BSIM4SunitAreaJctCapGiven   :1;
    unsigned  BSIM4SunitLengthSidewallJctCapGiven   :1;
    unsigned  BSIM4SbulkJctGateSideGradingCoeffGiven   :1;
    unsigned  BSIM4SunitLengthGateSidewallJctCapGiven   :1;
    unsigned  BSIM4SjctEmissionCoeffGiven :1;
    unsigned  BSIM4SjctTempExponentGiven        :1;

    unsigned  BSIM4DjctSatCurDensityGiven   :1;
    unsigned  BSIM4DjctSidewallSatCurDensityGiven   :1;
    unsigned  BSIM4DjctGateSidewallSatCurDensityGiven   :1;
    unsigned  BSIM4DbulkJctPotentialGiven   :1;
    unsigned  BSIM4DbulkJctBotGradingCoeffGiven   :1;
    unsigned  BSIM4DsidewallJctPotentialGiven   :1;
    unsigned  BSIM4DGatesidewallJctPotentialGiven   :1;
    unsigned  BSIM4DbulkJctSideGradingCoeffGiven   :1;
    unsigned  BSIM4DunitAreaJctCapGiven   :1;
    unsigned  BSIM4DunitLengthSidewallJctCapGiven   :1;
    unsigned  BSIM4DbulkJctGateSideGradingCoeffGiven   :1;
    unsigned  BSIM4DunitLengthGateSidewallJctCapGiven   :1;
    unsigned  BSIM4DjctEmissionCoeffGiven :1;
    unsigned  BSIM4DjctTempExponentGiven :1;

    unsigned  BSIM4oxideTrapDensityAGiven  :1;
    unsigned  BSIM4oxideTrapDensityBGiven  :1;
    unsigned  BSIM4oxideTrapDensityCGiven  :1;
    unsigned  BSIM4emGiven  :1;
    unsigned  BSIM4efGiven  :1;
    unsigned  BSIM4afGiven  :1;
    unsigned  BSIM4kfGiven  :1;

    unsigned  BSIM4vgsMaxGiven  :1;
    unsigned  BSIM4vgdMaxGiven  :1;
    unsigned  BSIM4vgbMaxGiven  :1;
    unsigned  BSIM4vdsMaxGiven  :1;
    unsigned  BSIM4vbsMaxGiven  :1;
    unsigned  BSIM4vbdMaxGiven  :1;
    unsigned  BSIM4vgsrMaxGiven  :1;
    unsigned  BSIM4vgdrMaxGiven  :1;
    unsigned  BSIM4vgbrMaxGiven  :1;
    unsigned  BSIM4vbsrMaxGiven  :1;
    unsigned  BSIM4vbdrMaxGiven  :1;

    unsigned  BSIM4LintGiven   :1;
    unsigned  BSIM4LlGiven   :1;
    unsigned  BSIM4LlcGiven   :1;
    unsigned  BSIM4LlnGiven   :1;
    unsigned  BSIM4LwGiven   :1;
    unsigned  BSIM4LwcGiven   :1;
    unsigned  BSIM4LwnGiven   :1;
    unsigned  BSIM4LwlGiven   :1;
    unsigned  BSIM4LwlcGiven   :1;
    unsigned  BSIM4LminGiven   :1;
    unsigned  BSIM4LmaxGiven   :1;

    unsigned  BSIM4WintGiven   :1;
    unsigned  BSIM4WlGiven   :1;
    unsigned  BSIM4WlcGiven   :1;
    unsigned  BSIM4WlnGiven   :1;
    unsigned  BSIM4WwGiven   :1;
    unsigned  BSIM4WwcGiven   :1;
    unsigned  BSIM4WwnGiven   :1;
    unsigned  BSIM4WwlGiven   :1;
    unsigned  BSIM4WwlcGiven   :1;
    unsigned  BSIM4WminGiven   :1;
    unsigned  BSIM4WmaxGiven   :1;

    /* added for stress effect */
    unsigned  BSIM4sarefGiven   :1;
    unsigned  BSIM4sbrefGiven   :1;
    unsigned  BSIM4wlodGiven  :1;
    unsigned  BSIM4ku0Given   :1;
    unsigned  BSIM4kvsatGiven  :1;
    unsigned  BSIM4kvth0Given  :1;
    unsigned  BSIM4tku0Given   :1;
    unsigned  BSIM4llodku0Given   :1;
    unsigned  BSIM4wlodku0Given   :1;
    unsigned  BSIM4llodvthGiven   :1;
    unsigned  BSIM4wlodvthGiven   :1;
    unsigned  BSIM4lku0Given   :1;
    unsigned  BSIM4wku0Given   :1;
    unsigned  BSIM4pku0Given   :1;
    unsigned  BSIM4lkvth0Given   :1;
    unsigned  BSIM4wkvth0Given   :1;
    unsigned  BSIM4pkvth0Given   :1;
    unsigned  BSIM4stk2Given   :1;
    unsigned  BSIM4lodk2Given  :1;
    unsigned  BSIM4steta0Given :1;
    unsigned  BSIM4lodeta0Given :1;

    unsigned  BSIM4webGiven   :1;
    unsigned  BSIM4wecGiven   :1;
    unsigned  BSIM4kvth0weGiven   :1;
    unsigned  BSIM4k2weGiven   :1;
    unsigned  BSIM4ku0weGiven   :1;
    unsigned  BSIM4screfGiven   :1;
    unsigned  BSIM4wpemodGiven   :1;
    unsigned  BSIM4lkvth0weGiven   :1;
    unsigned  BSIM4lk2weGiven   :1;
    unsigned  BSIM4lku0weGiven   :1;
    unsigned  BSIM4wkvth0weGiven   :1;
    unsigned  BSIM4wk2weGiven   :1;
    unsigned  BSIM4wku0weGiven   :1;
    unsigned  BSIM4pkvth0weGiven   :1;
    unsigned  BSIM4pk2weGiven   :1;
    unsigned  BSIM4pku0weGiven   :1;


} BSIM4model;


#ifndef NMOS
#define NMOS 1
#define PMOS -1
#endif /*NMOS*/


/* Instance parameters */
#define BSIM4_W                   1
#define BSIM4_L                   2
#define BSIM4_AS                  3
#define BSIM4_AD                  4
#define BSIM4_PS                  5
#define BSIM4_PD                  6
#define BSIM4_NRS                 7
#define BSIM4_NRD                 8
#define BSIM4_OFF                 9
#define BSIM4_IC                  10
#define BSIM4_IC_VDS              11
#define BSIM4_IC_VGS              12
#define BSIM4_IC_VBS              13
#define BSIM4_TRNQSMOD            14
#define BSIM4_RBODYMOD            15
#define BSIM4_RGATEMOD            16
#define BSIM4_GEOMOD              17
#define BSIM4_RGEOMOD             18
#define BSIM4_NF                  19
#define BSIM4_MIN                 20
#define BSIM4_ACNQSMOD            22
#define BSIM4_RBDB                23
#define BSIM4_RBSB                24
#define BSIM4_RBPB                25
#define BSIM4_RBPS                26
#define BSIM4_RBPD                27
#define BSIM4_SA                  28
#define BSIM4_SB                  29
#define BSIM4_SD                  30
#define BSIM4_DELVTO              31
#define BSIM4_XGW                 32
#define BSIM4_NGCON               33
#define BSIM4_SCA                 34
#define BSIM4_SCB                 35
#define BSIM4_SCC                 36
#define BSIM4_SC                  37
#define BSIM4_M                   38
#define BSIM4_MULU0               39
#define BSIM4_WNFLAG              40

/* Global parameters */
#define BSIM4_MOD_TEMPEOT         65
#define BSIM4_MOD_LEFFEOT         66
#define BSIM4_MOD_WEFFEOT         67
#define BSIM4_MOD_UCSTE           68
#define BSIM4_MOD_LUCSTE          69
#define BSIM4_MOD_WUCSTE          70
#define BSIM4_MOD_PUCSTE          71
#define BSIM4_MOD_UCS             72
#define BSIM4_MOD_LUCS            73
#define BSIM4_MOD_WUCS            74
#define BSIM4_MOD_PUCS            75
#define BSIM4_MOD_CVCHARGEMOD     76
#define BSIM4_MOD_ADOS            77
#define BSIM4_MOD_BDOS            78
#define BSIM4_MOD_TEMPMOD         79
#define BSIM4_MOD_MTRLMOD         80
#define BSIM4_MOD_IGCMOD          81
#define BSIM4_MOD_IGBMOD          82
#define BSIM4_MOD_ACNQSMOD        83
#define BSIM4_MOD_FNOIMOD         84
#define BSIM4_MOD_RDSMOD          85
#define BSIM4_MOD_DIOMOD          86
#define BSIM4_MOD_PERMOD          87
#define BSIM4_MOD_GEOMOD          88
#define BSIM4_MOD_RGEOMOD         89
#define BSIM4_MOD_RGATEMOD        90
#define BSIM4_MOD_RBODYMOD        91
#define BSIM4_MOD_CAPMOD          92
#define BSIM4_MOD_TRNQSMOD        93
#define BSIM4_MOD_MOBMOD          94
#define BSIM4_MOD_TNOIMOD         95
#define BSIM4_MOD_EOT             96
#define BSIM4_MOD_VDDEOT          97
#define BSIM4_MOD_TOXE            98
#define BSIM4_MOD_CDSC            99
#define BSIM4_MOD_CDSCB           100
#define BSIM4_MOD_CIT             101
#define BSIM4_MOD_NFACTOR         102
#define BSIM4_MOD_XJ              103
#define BSIM4_MOD_VSAT            104
#define BSIM4_MOD_AT              105
#define BSIM4_MOD_A0              106
#define BSIM4_MOD_A1              107
#define BSIM4_MOD_A2              108
#define BSIM4_MOD_KETA            109
#define BSIM4_MOD_NSUB            110
#define BSIM4_MOD_PHIG            111
#define BSIM4_MOD_EPSRGATE        112
#define BSIM4_MOD_EASUB           113
#define BSIM4_MOD_EPSRSUB         114
#define BSIM4_MOD_NI0SUB          115
#define BSIM4_MOD_BG0SUB          116
#define BSIM4_MOD_TBGASUB         117
#define BSIM4_MOD_TBGBSUB         118
#define BSIM4_MOD_NDEP            119
#define BSIM4_MOD_NGATE           120
#define BSIM4_MOD_GAMMA1          121
#define BSIM4_MOD_GAMMA2          122
#define BSIM4_MOD_VBX             123
#define BSIM4_MOD_BINUNIT         124
#define BSIM4_MOD_VBM             125
#define BSIM4_MOD_XT              126
#define BSIM4_MOD_K1              129
#define BSIM4_MOD_KT1             130
#define BSIM4_MOD_KT1L            131
#define BSIM4_MOD_K2              132
#define BSIM4_MOD_KT2             133
#define BSIM4_MOD_K3              134
#define BSIM4_MOD_K3B             135
#define BSIM4_MOD_W0              136
#define BSIM4_MOD_LPE0            137
#define BSIM4_MOD_DVT0            138
#define BSIM4_MOD_DVT1            139
#define BSIM4_MOD_DVT2            140
#define BSIM4_MOD_DVT0W           141
#define BSIM4_MOD_DVT1W           142
#define BSIM4_MOD_DVT2W           143
#define BSIM4_MOD_DROUT           144
#define BSIM4_MOD_DSUB            145
#define BSIM4_MOD_VTH0            146
#define BSIM4_MOD_UA              147
#define BSIM4_MOD_UA1             148
#define BSIM4_MOD_UB              149
#define BSIM4_MOD_UB1             150
#define BSIM4_MOD_UC              151
#define BSIM4_MOD_UC1             152
#define BSIM4_MOD_U0              153
#define BSIM4_MOD_UTE             154
#define BSIM4_MOD_VOFF            155
#define BSIM4_MOD_DELTA           156
#define BSIM4_MOD_RDSW            157
#define BSIM4_MOD_PRT             158
#define BSIM4_MOD_LDD             159
#define BSIM4_MOD_ETA             160
#define BSIM4_MOD_ETA0            161
#define BSIM4_MOD_ETAB            162
#define BSIM4_MOD_PCLM            163
#define BSIM4_MOD_PDIBL1          164
#define BSIM4_MOD_PDIBL2          165
#define BSIM4_MOD_PSCBE1          166
#define BSIM4_MOD_PSCBE2          167
#define BSIM4_MOD_PVAG            168
#define BSIM4_MOD_WR              169
#define BSIM4_MOD_DWG             170
#define BSIM4_MOD_DWB             171
#define BSIM4_MOD_B0              172
#define BSIM4_MOD_B1              173
#define BSIM4_MOD_ALPHA0          174
#define BSIM4_MOD_BETA0           175
#define BSIM4_MOD_PDIBLB          178
#define BSIM4_MOD_PRWG            179
#define BSIM4_MOD_PRWB            180
#define BSIM4_MOD_CDSCD           181
#define BSIM4_MOD_AGS             182
#define BSIM4_MOD_FRINGE          184
#define BSIM4_MOD_CGSL            186
#define BSIM4_MOD_CGDL            187
#define BSIM4_MOD_CKAPPAS         188
#define BSIM4_MOD_CF              189
#define BSIM4_MOD_CLC             190
#define BSIM4_MOD_CLE             191
#define BSIM4_MOD_PARAMCHK        192
#define BSIM4_MOD_VERSION         193
#define BSIM4_MOD_VFBCV           194
#define BSIM4_MOD_ACDE            195
#define BSIM4_MOD_MOIN            196
#define BSIM4_MOD_NOFF            197
#define BSIM4_MOD_IJTHDFWD        198
#define BSIM4_MOD_ALPHA1          199
#define BSIM4_MOD_VFB             200
#define BSIM4_MOD_TOXM            201
#define BSIM4_MOD_TCJ             202
#define BSIM4_MOD_TCJSW           203
#define BSIM4_MOD_TCJSWG          204
#define BSIM4_MOD_TPB             205
#define BSIM4_MOD_TPBSW           206
#define BSIM4_MOD_TPBSWG          207
#define BSIM4_MOD_VOFFCV          208
#define BSIM4_MOD_GBMIN           209
#define BSIM4_MOD_RBDB            210
#define BSIM4_MOD_RBSB            211
#define BSIM4_MOD_RBPB            212
#define BSIM4_MOD_RBPS            213
#define BSIM4_MOD_RBPD            214
#define BSIM4_MOD_DMCG            215
#define BSIM4_MOD_DMCI            216
#define BSIM4_MOD_DMDG            217
#define BSIM4_MOD_XGW             218
#define BSIM4_MOD_XGL             219
#define BSIM4_MOD_RSHG            220
#define BSIM4_MOD_NGCON           221
#define BSIM4_MOD_AGIDL           222
#define BSIM4_MOD_BGIDL           223
#define BSIM4_MOD_EGIDL           224
#define BSIM4_MOD_IJTHSFWD        225
#define BSIM4_MOD_XJBVD           226
#define BSIM4_MOD_XJBVS           227
#define BSIM4_MOD_BVD             228
#define BSIM4_MOD_BVS             229
#define BSIM4_MOD_TOXP            230
#define BSIM4_MOD_DTOX            231
#define BSIM4_MOD_XRCRG1          232
#define BSIM4_MOD_XRCRG2          233
#define BSIM4_MOD_EU              234
#define BSIM4_MOD_IJTHSREV        235
#define BSIM4_MOD_IJTHDREV        236
#define BSIM4_MOD_MINV            237
#define BSIM4_MOD_VOFFL           238
#define BSIM4_MOD_PDITS           239
#define BSIM4_MOD_PDITSD          240
#define BSIM4_MOD_PDITSL          241
#define BSIM4_MOD_TNOIA           242
#define BSIM4_MOD_TNOIB           243
#define BSIM4_MOD_NTNOI           244
#define BSIM4_MOD_FPROUT          245
#define BSIM4_MOD_LPEB            246
#define BSIM4_MOD_DVTP0           247
#define BSIM4_MOD_DVTP1           248
#define BSIM4_MOD_CGIDL           249
#define BSIM4_MOD_PHIN            250
#define BSIM4_MOD_RDSWMIN         251
#define BSIM4_MOD_RSW             252
#define BSIM4_MOD_RDW             253
#define BSIM4_MOD_RDWMIN          254
#define BSIM4_MOD_RSWMIN          255
#define BSIM4_MOD_NSD             256
#define BSIM4_MOD_CKAPPAD         257
#define BSIM4_MOD_DMCGT           258
#define BSIM4_MOD_AIGC            259
#define BSIM4_MOD_BIGC            260
#define BSIM4_MOD_CIGC            261
#define BSIM4_MOD_AIGBACC         262
#define BSIM4_MOD_BIGBACC         263
#define BSIM4_MOD_CIGBACC         264
#define BSIM4_MOD_AIGBINV         265
#define BSIM4_MOD_BIGBINV         266
#define BSIM4_MOD_CIGBINV         267
#define BSIM4_MOD_NIGC            268
#define BSIM4_MOD_NIGBACC         269
#define BSIM4_MOD_NIGBINV         270
#define BSIM4_MOD_NTOX            271
#define BSIM4_MOD_TOXREF          272
#define BSIM4_MOD_EIGBINV         273
#define BSIM4_MOD_PIGCD           274
#define BSIM4_MOD_POXEDGE         275
#define BSIM4_MOD_EPSROX          276
#define BSIM4_MOD_AIGSD           277
#define BSIM4_MOD_BIGSD           278
#define BSIM4_MOD_CIGSD           279
#define BSIM4_MOD_JSWGS           280
#define BSIM4_MOD_JSWGD           281
#define BSIM4_MOD_LAMBDA          282
#define BSIM4_MOD_VTL             283
#define BSIM4_MOD_LC              284
#define BSIM4_MOD_XN              285
#define BSIM4_MOD_RNOIA           286
#define BSIM4_MOD_RNOIB           287
#define BSIM4_MOD_VFBSDOFF        288
#define BSIM4_MOD_LINTNOI         289
#define BSIM4_MOD_UD              290
#define BSIM4_MOD_UD1             291
#define BSIM4_MOD_UP              292
#define BSIM4_MOD_LP              293
#define BSIM4_MOD_TVOFF           294
#define BSIM4_MOD_TVFBSDOFF       295
#define BSIM4_MOD_MINVCV          296
#define BSIM4_MOD_VOFFCVL         297
#define BSIM4_MOD_MTRLCOMPATMOD   380

/* Length dependence */
#define BSIM4_MOD_LCDSC            301
#define BSIM4_MOD_LCDSCB           302
#define BSIM4_MOD_LCIT             303
#define BSIM4_MOD_LNFACTOR         304
#define BSIM4_MOD_LXJ              305
#define BSIM4_MOD_LVSAT            306
#define BSIM4_MOD_LAT              307
#define BSIM4_MOD_LA0              308
#define BSIM4_MOD_LA1              309
#define BSIM4_MOD_LA2              310
#define BSIM4_MOD_LKETA            311
#define BSIM4_MOD_LNSUB            312
#define BSIM4_MOD_LNDEP            313
#define BSIM4_MOD_LNGATE           315
#define BSIM4_MOD_LGAMMA1          316
#define BSIM4_MOD_LGAMMA2          317
#define BSIM4_MOD_LVBX             318
#define BSIM4_MOD_LVBM             320
#define BSIM4_MOD_LXT              322
#define BSIM4_MOD_LK1              325
#define BSIM4_MOD_LKT1             326
#define BSIM4_MOD_LKT1L            327
#define BSIM4_MOD_LK2              328
#define BSIM4_MOD_LKT2             329
#define BSIM4_MOD_LK3              330
#define BSIM4_MOD_LK3B             331
#define BSIM4_MOD_LW0              332
#define BSIM4_MOD_LLPE0            333
#define BSIM4_MOD_LDVT0            334
#define BSIM4_MOD_LDVT1            335
#define BSIM4_MOD_LDVT2            336
#define BSIM4_MOD_LDVT0W           337
#define BSIM4_MOD_LDVT1W           338
#define BSIM4_MOD_LDVT2W           339
#define BSIM4_MOD_LDROUT           340
#define BSIM4_MOD_LDSUB            341
#define BSIM4_MOD_LVTH0            342
#define BSIM4_MOD_LUA              343
#define BSIM4_MOD_LUA1             344
#define BSIM4_MOD_LUB              345
#define BSIM4_MOD_LUB1             346
#define BSIM4_MOD_LUC              347
#define BSIM4_MOD_LUC1             348
#define BSIM4_MOD_LU0              349
#define BSIM4_MOD_LUTE             350
#define BSIM4_MOD_LVOFF            351
#define BSIM4_MOD_LDELTA           352
#define BSIM4_MOD_LRDSW            353
#define BSIM4_MOD_LPRT             354
#define BSIM4_MOD_LLDD             355
#define BSIM4_MOD_LETA             356
#define BSIM4_MOD_LETA0            357
#define BSIM4_MOD_LETAB            358
#define BSIM4_MOD_LPCLM            359
#define BSIM4_MOD_LPDIBL1          360
#define BSIM4_MOD_LPDIBL2          361
#define BSIM4_MOD_LPSCBE1          362
#define BSIM4_MOD_LPSCBE2          363
#define BSIM4_MOD_LPVAG            364
#define BSIM4_MOD_LWR              365
#define BSIM4_MOD_LDWG             366
#define BSIM4_MOD_LDWB             367
#define BSIM4_MOD_LB0              368
#define BSIM4_MOD_LB1              369
#define BSIM4_MOD_LALPHA0          370
#define BSIM4_MOD_LBETA0           371
#define BSIM4_MOD_LPDIBLB          374
#define BSIM4_MOD_LPRWG            375
#define BSIM4_MOD_LPRWB            376
#define BSIM4_MOD_LCDSCD           377
#define BSIM4_MOD_LAGS             378

#define BSIM4_MOD_LFRINGE          381
#define BSIM4_MOD_LCGSL            383
#define BSIM4_MOD_LCGDL            384
#define BSIM4_MOD_LCKAPPAS         385
#define BSIM4_MOD_LCF              386
#define BSIM4_MOD_LCLC             387
#define BSIM4_MOD_LCLE             388
#define BSIM4_MOD_LVFBCV           389
#define BSIM4_MOD_LACDE            390
#define BSIM4_MOD_LMOIN            391
#define BSIM4_MOD_LNOFF            392
#define BSIM4_MOD_LALPHA1          394
#define BSIM4_MOD_LVFB             395
#define BSIM4_MOD_LVOFFCV          396
#define BSIM4_MOD_LAGIDL           397
#define BSIM4_MOD_LBGIDL           398
#define BSIM4_MOD_LEGIDL           399
#define BSIM4_MOD_LXRCRG1          400
#define BSIM4_MOD_LXRCRG2          401
#define BSIM4_MOD_LEU              402
#define BSIM4_MOD_LMINV            403
#define BSIM4_MOD_LPDITS           404
#define BSIM4_MOD_LPDITSD          405
#define BSIM4_MOD_LFPROUT          406
#define BSIM4_MOD_LLPEB            407
#define BSIM4_MOD_LDVTP0           408
#define BSIM4_MOD_LDVTP1           409
#define BSIM4_MOD_LCGIDL           410
#define BSIM4_MOD_LPHIN            411
#define BSIM4_MOD_LRSW             412
#define BSIM4_MOD_LRDW             413
#define BSIM4_MOD_LNSD             414
#define BSIM4_MOD_LCKAPPAD         415
#define BSIM4_MOD_LAIGC            416
#define BSIM4_MOD_LBIGC            417
#define BSIM4_MOD_LCIGC            418
#define BSIM4_MOD_LAIGBACC         419
#define BSIM4_MOD_LBIGBACC         420
#define BSIM4_MOD_LCIGBACC         421
#define BSIM4_MOD_LAIGBINV         422
#define BSIM4_MOD_LBIGBINV         423
#define BSIM4_MOD_LCIGBINV         424
#define BSIM4_MOD_LNIGC            425
#define BSIM4_MOD_LNIGBACC         426
#define BSIM4_MOD_LNIGBINV         427
#define BSIM4_MOD_LNTOX            428
#define BSIM4_MOD_LEIGBINV         429
#define BSIM4_MOD_LPIGCD           430
#define BSIM4_MOD_LPOXEDGE         431
#define BSIM4_MOD_LAIGSD           432
#define BSIM4_MOD_LBIGSD           433
#define BSIM4_MOD_LCIGSD           434

#define BSIM4_MOD_LLAMBDA          435
#define BSIM4_MOD_LVTL             436
#define BSIM4_MOD_LXN              437
#define BSIM4_MOD_LVFBSDOFF        438
#define BSIM4_MOD_LUD              439
#define BSIM4_MOD_LUD1             440
#define BSIM4_MOD_LUP              441
#define BSIM4_MOD_LLP              442
#define BSIM4_MOD_LMINVCV          443

#define BSIM4_MOD_FGIDL            444                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_KGIDL            445                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_RGIDL            446                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_FGISL            447                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_KGISL            448                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_RGISL            449                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_LFGIDL           450                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_LKGIDL           451                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_LRGIDL           452                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_LFGISL           453                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_LKGISL           454                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_LRGISL           455                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_WFGIDL           456                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_WKGIDL           457                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_WRGIDL           458                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_WFGISL           459                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_WKGISL           460                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_WRGISL           461                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_PFGIDL           462                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_PKGIDL           463                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_PRGIDL           464                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_PFGISL           465                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_PKGISL           466                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_PRGISL           467                  /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_GIDLMOD          379                        /* v4.7 New GIDL/GISL*/
#define BSIM4_MOD_DVTP2           468                        /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_DVTP3           469                        /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_DVTP4           470                        /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_DVTP5           471                        /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_LDVTP2          472                        /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_LDVTP3          473                        /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_LDVTP4          474                        /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_LDVTP5          475                        /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_WDVTP2          476                        /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_WDVTP3          477                        /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_WDVTP4          478                        /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_WDVTP5          479                        /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_PDVTP2          480                        /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_PDVTP3          298                         /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_PDVTP4          299                         /* v4.7 NEW DIBL/Rout*/
#define BSIM4_MOD_PDVTP5          300                         /* v4.7 NEW DIBL/Rout*/

/* Width dependence */
#define BSIM4_MOD_WCDSC            481
#define BSIM4_MOD_WCDSCB           482
#define BSIM4_MOD_WCIT             483
#define BSIM4_MOD_WNFACTOR         484
#define BSIM4_MOD_WXJ              485
#define BSIM4_MOD_WVSAT            486
#define BSIM4_MOD_WAT              487
#define BSIM4_MOD_WA0              488
#define BSIM4_MOD_WA1              489
#define BSIM4_MOD_WA2              490
#define BSIM4_MOD_WKETA            491
#define BSIM4_MOD_WNSUB            492
#define BSIM4_MOD_WNDEP            493
#define BSIM4_MOD_WNGATE           495
#define BSIM4_MOD_WGAMMA1          496
#define BSIM4_MOD_WGAMMA2          497
#define BSIM4_MOD_WVBX             498
#define BSIM4_MOD_WVBM             500
#define BSIM4_MOD_WXT              502
#define BSIM4_MOD_WK1              505
#define BSIM4_MOD_WKT1             506
#define BSIM4_MOD_WKT1L            507
#define BSIM4_MOD_WK2              508
#define BSIM4_MOD_WKT2             509
#define BSIM4_MOD_WK3              510
#define BSIM4_MOD_WK3B             511
#define BSIM4_MOD_WW0              512
#define BSIM4_MOD_WLPE0            513
#define BSIM4_MOD_WDVT0            514
#define BSIM4_MOD_WDVT1            515
#define BSIM4_MOD_WDVT2            516
#define BSIM4_MOD_WDVT0W           517
#define BSIM4_MOD_WDVT1W           518
#define BSIM4_MOD_WDVT2W           519
#define BSIM4_MOD_WDROUT           520
#define BSIM4_MOD_WDSUB            521
#define BSIM4_MOD_WVTH0            522
#define BSIM4_MOD_WUA              523
#define BSIM4_MOD_WUA1             524
#define BSIM4_MOD_WUB              525
#define BSIM4_MOD_WUB1             526
#define BSIM4_MOD_WUC              527
#define BSIM4_MOD_WUC1             528
#define BSIM4_MOD_WU0              529
#define BSIM4_MOD_WUTE             530
#define BSIM4_MOD_WVOFF            531
#define BSIM4_MOD_WDELTA           532
#define BSIM4_MOD_WRDSW            533
#define BSIM4_MOD_WPRT             534
#define BSIM4_MOD_WLDD             535
#define BSIM4_MOD_WETA             536
#define BSIM4_MOD_WETA0            537
#define BSIM4_MOD_WETAB            538
#define BSIM4_MOD_WPCLM            539
#define BSIM4_MOD_WPDIBL1          540
#define BSIM4_MOD_WPDIBL2          541
#define BSIM4_MOD_WPSCBE1          542
#define BSIM4_MOD_WPSCBE2          543
#define BSIM4_MOD_WPVAG            544
#define BSIM4_MOD_WWR              545
#define BSIM4_MOD_WDWG             546
#define BSIM4_MOD_WDWB             547
#define BSIM4_MOD_WB0              548
#define BSIM4_MOD_WB1              549
#define BSIM4_MOD_WALPHA0          550
#define BSIM4_MOD_WBETA0           551
#define BSIM4_MOD_WPDIBLB          554
#define BSIM4_MOD_WPRWG            555
#define BSIM4_MOD_WPRWB            556
#define BSIM4_MOD_WCDSCD           557
#define BSIM4_MOD_WAGS             558

#define BSIM4_MOD_WFRINGE          561
#define BSIM4_MOD_WCGSL            563
#define BSIM4_MOD_WCGDL            564
#define BSIM4_MOD_WCKAPPAS         565
#define BSIM4_MOD_WCF              566
#define BSIM4_MOD_WCLC             567
#define BSIM4_MOD_WCLE             568
#define BSIM4_MOD_WVFBCV           569
#define BSIM4_MOD_WACDE            570
#define BSIM4_MOD_WMOIN            571
#define BSIM4_MOD_WNOFF            572
#define BSIM4_MOD_WALPHA1          574
#define BSIM4_MOD_WVFB             575
#define BSIM4_MOD_WVOFFCV          576
#define BSIM4_MOD_WAGIDL           577
#define BSIM4_MOD_WBGIDL           578
#define BSIM4_MOD_WEGIDL           579
#define BSIM4_MOD_WXRCRG1          580
#define BSIM4_MOD_WXRCRG2          581
#define BSIM4_MOD_WEU              582
#define BSIM4_MOD_WMINV            583
#define BSIM4_MOD_WPDITS           584
#define BSIM4_MOD_WPDITSD          585
#define BSIM4_MOD_WFPROUT          586
#define BSIM4_MOD_WLPEB            587
#define BSIM4_MOD_WDVTP0           588
#define BSIM4_MOD_WDVTP1           589
#define BSIM4_MOD_WCGIDL           590
#define BSIM4_MOD_WPHIN            591
#define BSIM4_MOD_WRSW             592
#define BSIM4_MOD_WRDW             593
#define BSIM4_MOD_WNSD             594
#define BSIM4_MOD_WCKAPPAD         595
#define BSIM4_MOD_WAIGC            596
#define BSIM4_MOD_WBIGC            597
#define BSIM4_MOD_WCIGC            598
#define BSIM4_MOD_WAIGBACC         599
#define BSIM4_MOD_WBIGBACC         600
#define BSIM4_MOD_WCIGBACC         601
#define BSIM4_MOD_WAIGBINV         602
#define BSIM4_MOD_WBIGBINV         603
#define BSIM4_MOD_WCIGBINV         604
#define BSIM4_MOD_WNIGC            605
#define BSIM4_MOD_WNIGBACC         606
#define BSIM4_MOD_WNIGBINV         607
#define BSIM4_MOD_WNTOX            608
#define BSIM4_MOD_WEIGBINV         609
#define BSIM4_MOD_WPIGCD           610
#define BSIM4_MOD_WPOXEDGE         611
#define BSIM4_MOD_WAIGSD           612
#define BSIM4_MOD_WBIGSD           613
#define BSIM4_MOD_WCIGSD           614
#define BSIM4_MOD_WLAMBDA          615
#define BSIM4_MOD_WVTL             616
#define BSIM4_MOD_WXN              617
#define BSIM4_MOD_WVFBSDOFF        618
#define BSIM4_MOD_WUD              619
#define BSIM4_MOD_WUD1             620
#define BSIM4_MOD_WUP              621
#define BSIM4_MOD_WLP              622
#define BSIM4_MOD_WMINVCV          623

/* Cross-term dependence */
#define BSIM4_MOD_PCDSC            661
#define BSIM4_MOD_PCDSCB           662
#define BSIM4_MOD_PCIT             663
#define BSIM4_MOD_PNFACTOR         664
#define BSIM4_MOD_PXJ              665
#define BSIM4_MOD_PVSAT            666
#define BSIM4_MOD_PAT              667
#define BSIM4_MOD_PA0              668
#define BSIM4_MOD_PA1              669
#define BSIM4_MOD_PA2              670
#define BSIM4_MOD_PKETA            671
#define BSIM4_MOD_PNSUB            672
#define BSIM4_MOD_PNDEP            673
#define BSIM4_MOD_PNGATE           675
#define BSIM4_MOD_PGAMMA1          676
#define BSIM4_MOD_PGAMMA2          677
#define BSIM4_MOD_PVBX             678

#define BSIM4_MOD_PVBM             680

#define BSIM4_MOD_PXT              682
#define BSIM4_MOD_PK1              685
#define BSIM4_MOD_PKT1             686
#define BSIM4_MOD_PKT1L            687
#define BSIM4_MOD_PK2              688
#define BSIM4_MOD_PKT2             689
#define BSIM4_MOD_PK3              690
#define BSIM4_MOD_PK3B             691
#define BSIM4_MOD_PW0              692
#define BSIM4_MOD_PLPE0            693

#define BSIM4_MOD_PDVT0            694
#define BSIM4_MOD_PDVT1            695
#define BSIM4_MOD_PDVT2            696

#define BSIM4_MOD_PDVT0W           697
#define BSIM4_MOD_PDVT1W           698
#define BSIM4_MOD_PDVT2W           699

#define BSIM4_MOD_PDROUT           700
#define BSIM4_MOD_PDSUB            701
#define BSIM4_MOD_PVTH0            702
#define BSIM4_MOD_PUA              703
#define BSIM4_MOD_PUA1             704
#define BSIM4_MOD_PUB              705
#define BSIM4_MOD_PUB1             706
#define BSIM4_MOD_PUC              707
#define BSIM4_MOD_PUC1             708
#define BSIM4_MOD_PU0              709
#define BSIM4_MOD_PUTE             710
#define BSIM4_MOD_PVOFF            711
#define BSIM4_MOD_PDELTA           712
#define BSIM4_MOD_PRDSW            713
#define BSIM4_MOD_PPRT             714
#define BSIM4_MOD_PLDD             715
#define BSIM4_MOD_PETA             716
#define BSIM4_MOD_PETA0            717
#define BSIM4_MOD_PETAB            718
#define BSIM4_MOD_PPCLM            719
#define BSIM4_MOD_PPDIBL1          720
#define BSIM4_MOD_PPDIBL2          721
#define BSIM4_MOD_PPSCBE1          722
#define BSIM4_MOD_PPSCBE2          723
#define BSIM4_MOD_PPVAG            724
#define BSIM4_MOD_PWR              725
#define BSIM4_MOD_PDWG             726
#define BSIM4_MOD_PDWB             727
#define BSIM4_MOD_PB0              728
#define BSIM4_MOD_PB1              729
#define BSIM4_MOD_PALPHA0          730
#define BSIM4_MOD_PBETA0           731
#define BSIM4_MOD_PPDIBLB          734

#define BSIM4_MOD_PPRWG            735
#define BSIM4_MOD_PPRWB            736

#define BSIM4_MOD_PCDSCD           737
#define BSIM4_MOD_PAGS             738

#define BSIM4_MOD_PFRINGE          741
#define BSIM4_MOD_PCGSL            743
#define BSIM4_MOD_PCGDL            744
#define BSIM4_MOD_PCKAPPAS         745
#define BSIM4_MOD_PCF              746
#define BSIM4_MOD_PCLC             747
#define BSIM4_MOD_PCLE             748
#define BSIM4_MOD_PVFBCV           749
#define BSIM4_MOD_PACDE            750
#define BSIM4_MOD_PMOIN            751
#define BSIM4_MOD_PNOFF            752
#define BSIM4_MOD_PALPHA1          754
#define BSIM4_MOD_PVFB             755
#define BSIM4_MOD_PVOFFCV          756
#define BSIM4_MOD_PAGIDL           757
#define BSIM4_MOD_PBGIDL           758
#define BSIM4_MOD_PEGIDL           759
#define BSIM4_MOD_PXRCRG1          760
#define BSIM4_MOD_PXRCRG2          761
#define BSIM4_MOD_PEU              762
#define BSIM4_MOD_PMINV            763
#define BSIM4_MOD_PPDITS           764
#define BSIM4_MOD_PPDITSD          765
#define BSIM4_MOD_PFPROUT          766
#define BSIM4_MOD_PLPEB            767
#define BSIM4_MOD_PDVTP0           768
#define BSIM4_MOD_PDVTP1           769
#define BSIM4_MOD_PCGIDL           770
#define BSIM4_MOD_PPHIN            771
#define BSIM4_MOD_PRSW             772
#define BSIM4_MOD_PRDW             773
#define BSIM4_MOD_PNSD             774
#define BSIM4_MOD_PCKAPPAD         775
#define BSIM4_MOD_PAIGC            776
#define BSIM4_MOD_PBIGC            777
#define BSIM4_MOD_PCIGC            778
#define BSIM4_MOD_PAIGBACC         779
#define BSIM4_MOD_PBIGBACC         780
#define BSIM4_MOD_PCIGBACC         781
#define BSIM4_MOD_PAIGBINV         782
#define BSIM4_MOD_PBIGBINV         783
#define BSIM4_MOD_PCIGBINV         784
#define BSIM4_MOD_PNIGC            785
#define BSIM4_MOD_PNIGBACC         786
#define BSIM4_MOD_PNIGBINV         787
#define BSIM4_MOD_PNTOX            788
#define BSIM4_MOD_PEIGBINV         789
#define BSIM4_MOD_PPIGCD           790
#define BSIM4_MOD_PPOXEDGE         791
#define BSIM4_MOD_PAIGSD           792
#define BSIM4_MOD_PBIGSD           793
#define BSIM4_MOD_PCIGSD           794

#define BSIM4_MOD_SAREF            795
#define BSIM4_MOD_SBREF            796
#define BSIM4_MOD_KU0              797
#define BSIM4_MOD_KVSAT            798
#define BSIM4_MOD_TKU0             799
#define BSIM4_MOD_LLODKU0          800
#define BSIM4_MOD_WLODKU0          801
#define BSIM4_MOD_LLODVTH          802
#define BSIM4_MOD_WLODVTH          803
#define BSIM4_MOD_LKU0             804
#define BSIM4_MOD_WKU0             805
#define BSIM4_MOD_PKU0             806
#define BSIM4_MOD_KVTH0            807
#define BSIM4_MOD_LKVTH0           808
#define BSIM4_MOD_WKVTH0           809
#define BSIM4_MOD_PKVTH0           810
#define BSIM4_MOD_WLOD                   811
#define BSIM4_MOD_STK2                   812
#define BSIM4_MOD_LODK2                   813
#define BSIM4_MOD_STETA0           814
#define BSIM4_MOD_LODETA0           815

#define BSIM4_MOD_WEB              816
#define BSIM4_MOD_WEC              817
#define BSIM4_MOD_KVTH0WE          818
#define BSIM4_MOD_K2WE             819
#define BSIM4_MOD_KU0WE            820
#define BSIM4_MOD_SCREF            821
#define BSIM4_MOD_WPEMOD           822
#define BSIM4_MOD_PMINVCV          823

#define BSIM4_MOD_PLAMBDA          825
#define BSIM4_MOD_PVTL             826
#define BSIM4_MOD_PXN              827
#define BSIM4_MOD_PVFBSDOFF        828

#define BSIM4_MOD_TNOM             831
#define BSIM4_MOD_CGSO             832
#define BSIM4_MOD_CGDO             833
#define BSIM4_MOD_CGBO             834
#define BSIM4_MOD_XPART            835
#define BSIM4_MOD_RSH              836
#define BSIM4_MOD_JSS              837
#define BSIM4_MOD_PBS              838
#define BSIM4_MOD_MJS              839
#define BSIM4_MOD_PBSWS            840
#define BSIM4_MOD_MJSWS            841
#define BSIM4_MOD_CJS              842
#define BSIM4_MOD_CJSWS            843
#define BSIM4_MOD_NMOS             844
#define BSIM4_MOD_PMOS             845
#define BSIM4_MOD_NOIA             846
#define BSIM4_MOD_NOIB             847
#define BSIM4_MOD_NOIC             848
#define BSIM4_MOD_LINT             849
#define BSIM4_MOD_LL               850
#define BSIM4_MOD_LLN              851
#define BSIM4_MOD_LW               852
#define BSIM4_MOD_LWN              853
#define BSIM4_MOD_LWL              854
#define BSIM4_MOD_LMIN             855
#define BSIM4_MOD_LMAX             856
#define BSIM4_MOD_WINT             857
#define BSIM4_MOD_WL               858
#define BSIM4_MOD_WLN              859
#define BSIM4_MOD_WW               860
#define BSIM4_MOD_WWN              861
#define BSIM4_MOD_WWL              862
#define BSIM4_MOD_WMIN             863
#define BSIM4_MOD_WMAX             864
#define BSIM4_MOD_DWC              865
#define BSIM4_MOD_DLC              866
#define BSIM4_MOD_XL               867
#define BSIM4_MOD_XW               868
#define BSIM4_MOD_EM               869
#define BSIM4_MOD_EF               870
#define BSIM4_MOD_AF               871
#define BSIM4_MOD_KF               872
#define BSIM4_MOD_NJS              873
#define BSIM4_MOD_XTIS             874
#define BSIM4_MOD_PBSWGS           875
#define BSIM4_MOD_MJSWGS           876
#define BSIM4_MOD_CJSWGS           877
#define BSIM4_MOD_JSWS             878
#define BSIM4_MOD_LLC              879
#define BSIM4_MOD_LWC              880
#define BSIM4_MOD_LWLC             881
#define BSIM4_MOD_WLC              882
#define BSIM4_MOD_WWC              883
#define BSIM4_MOD_WWLC             884
#define BSIM4_MOD_DWJ              885
#define BSIM4_MOD_JSD              886
#define BSIM4_MOD_PBD              887
#define BSIM4_MOD_MJD              888
#define BSIM4_MOD_PBSWD            889
#define BSIM4_MOD_MJSWD            890
#define BSIM4_MOD_CJD              891
#define BSIM4_MOD_CJSWD            892
#define BSIM4_MOD_NJD              893
#define BSIM4_MOD_XTID             894
#define BSIM4_MOD_PBSWGD           895
#define BSIM4_MOD_MJSWGD           896
#define BSIM4_MOD_CJSWGD           897
#define BSIM4_MOD_JSWD             898
#define BSIM4_MOD_DLCIG            899

/* trap-assisted tunneling */

#define BSIM4_MOD_JTSS             900
#define BSIM4_MOD_JTSD                   901
#define BSIM4_MOD_JTSSWS           902
#define BSIM4_MOD_JTSSWD           903
#define BSIM4_MOD_JTSSWGS           904
#define BSIM4_MOD_JTSSWGD           905
#define BSIM4_MOD_NJTS                    906
#define BSIM4_MOD_NJTSSW           907
#define BSIM4_MOD_NJTSSWG           908
#define BSIM4_MOD_XTSS                   909
#define BSIM4_MOD_XTSD                   910
#define BSIM4_MOD_XTSSWS           911
#define BSIM4_MOD_XTSSWD           912
#define BSIM4_MOD_XTSSWGS           913
#define BSIM4_MOD_XTSSWGD           914
#define BSIM4_MOD_TNJTS                   915
#define BSIM4_MOD_TNJTSSW           916
#define BSIM4_MOD_TNJTSSWG           917
#define BSIM4_MOD_VTSS             918
#define BSIM4_MOD_VTSD                   919
#define BSIM4_MOD_VTSSWS           920
#define BSIM4_MOD_VTSSWD           921
#define BSIM4_MOD_VTSSWGS           922
#define BSIM4_MOD_VTSSWGD           923
#define BSIM4_MOD_PUD              924
#define BSIM4_MOD_PUD1             925
#define BSIM4_MOD_PUP              926
#define BSIM4_MOD_PLP              927
#define BSIM4_MOD_JTWEFF           928

/* device questions */
#define BSIM4_DNODE                945
#define BSIM4_GNODEEXT             946
#define BSIM4_SNODE                947
#define BSIM4_BNODE                948
#define BSIM4_DNODEPRIME           949
#define BSIM4_GNODEPRIME           950
#define BSIM4_GNODEMIDE            951
#define BSIM4_GNODEMID             952
#define BSIM4_SNODEPRIME           953
#define BSIM4_BNODEPRIME           954
#define BSIM4_DBNODE               955
#define BSIM4_SBNODE               956
#define BSIM4_VBD                  957
#define BSIM4_VBS                  958
#define BSIM4_VGS                  959
#define BSIM4_VDS                  960
#define BSIM4_CD                   961
#define BSIM4_CBS                  962
#define BSIM4_CBD                  963
#define BSIM4_GM                   964
#define BSIM4_GDS                  965
#define BSIM4_GMBS                 966
#define BSIM4_GBD                  967
#define BSIM4_GBS                  968
#define BSIM4_QB                   969
#define BSIM4_CQB                  970
#define BSIM4_QG                   971
#define BSIM4_CQG                  972
#define BSIM4_QD                   973
#define BSIM4_CQD                  974
#define BSIM4_CGGB                 975
#define BSIM4_CGDB                 976
#define BSIM4_CGSB                 977
#define BSIM4_CBGB                 978
#define BSIM4_CAPBD                979
#define BSIM4_CQBD                 980
#define BSIM4_CAPBS                981
#define BSIM4_CQBS                 982
#define BSIM4_CDGB                 983
#define BSIM4_CDDB                 984
#define BSIM4_CDSB                 985
#define BSIM4_VON                  986
#define BSIM4_VDSAT                987
#define BSIM4_QBS                  988
#define BSIM4_QBD                  989
#define BSIM4_SOURCECONDUCT        990
#define BSIM4_DRAINCONDUCT         991
#define BSIM4_CBDB                 992
#define BSIM4_CBSB                 993
#define BSIM4_CSUB                   994
#define BSIM4_QINV                   995
#define BSIM4_IGIDL                   996
#define BSIM4_CSGB                 997
#define BSIM4_CSDB                 998
#define BSIM4_CSSB                 999
#define BSIM4_CGBB                 1000
#define BSIM4_CDBB                 1001
#define BSIM4_CSBB                 1002
#define BSIM4_CBBB                 1003
#define BSIM4_QS                   1004
#define BSIM4_IGISL                   1005
#define BSIM4_IGS                   1006
#define BSIM4_IGD                   1007
#define BSIM4_IGB                   1008
#define BSIM4_IGCS                   1009
#define BSIM4_IGCD                   1010
#define BSIM4_QDEF                   1011
#define BSIM4_DELVT0                   1012
#define BSIM4_GCRG                 1013
#define BSIM4_GTAU                 1014

#define BSIM4_MOD_LTVOFF           1051
#define BSIM4_MOD_LTVFBSDOFF       1052
#define BSIM4_MOD_WTVOFF           1053
#define BSIM4_MOD_WTVFBSDOFF       1054
#define BSIM4_MOD_PTVOFF           1055
#define BSIM4_MOD_PTVFBSDOFF       1056

#define BSIM4_MOD_LKVTH0WE          1061
#define BSIM4_MOD_LK2WE             1062
#define BSIM4_MOD_LKU0WE                1063
#define BSIM4_MOD_WKVTH0WE          1064
#define BSIM4_MOD_WK2WE             1065
#define BSIM4_MOD_WKU0WE                1066
#define BSIM4_MOD_PKVTH0WE          1067
#define BSIM4_MOD_PK2WE             1068
#define BSIM4_MOD_PKU0WE                1069

#define BSIM4_MOD_RBPS0               1101
#define BSIM4_MOD_RBPSL               1102
#define BSIM4_MOD_RBPSW               1103
#define BSIM4_MOD_RBPSNF              1104
#define BSIM4_MOD_RBPD0               1105
#define BSIM4_MOD_RBPDL               1106
#define BSIM4_MOD_RBPDW               1107
#define BSIM4_MOD_RBPDNF              1108

#define BSIM4_MOD_RBPBX0              1109
#define BSIM4_MOD_RBPBXL              1110
#define BSIM4_MOD_RBPBXW              1111
#define BSIM4_MOD_RBPBXNF             1112
#define BSIM4_MOD_RBPBY0              1113
#define BSIM4_MOD_RBPBYL              1114
#define BSIM4_MOD_RBPBYW              1115
#define BSIM4_MOD_RBPBYNF             1116

#define BSIM4_MOD_RBSBX0              1117
#define BSIM4_MOD_RBSBY0              1118
#define BSIM4_MOD_RBDBX0              1119
#define BSIM4_MOD_RBDBY0              1120

#define BSIM4_MOD_RBSDBXL             1121
#define BSIM4_MOD_RBSDBXW             1122
#define BSIM4_MOD_RBSDBXNF            1123
#define BSIM4_MOD_RBSDBYL             1124
#define BSIM4_MOD_RBSDBYW             1125
#define BSIM4_MOD_RBSDBYNF            1126

#define BSIM4_MOD_AGISL               1200
#define BSIM4_MOD_BGISL               1201
#define BSIM4_MOD_EGISL               1202
#define BSIM4_MOD_CGISL               1203
#define BSIM4_MOD_LAGISL              1204
#define BSIM4_MOD_LBGISL              1205
#define BSIM4_MOD_LEGISL              1206
#define BSIM4_MOD_LCGISL              1207
#define BSIM4_MOD_WAGISL              1208
#define BSIM4_MOD_WBGISL              1209
#define BSIM4_MOD_WEGISL              1210
#define BSIM4_MOD_WCGISL              1211
#define BSIM4_MOD_PAGISL              1212
#define BSIM4_MOD_PBGISL              1213
#define BSIM4_MOD_PEGISL              1214
#define BSIM4_MOD_PCGISL              1215

#define BSIM4_MOD_AIGS                1220
#define BSIM4_MOD_BIGS                1221
#define BSIM4_MOD_CIGS                1222
#define BSIM4_MOD_LAIGS               1223
#define BSIM4_MOD_LBIGS               1224
#define BSIM4_MOD_LCIGS               1225
#define BSIM4_MOD_WAIGS               1226
#define BSIM4_MOD_WBIGS               1227
#define BSIM4_MOD_WCIGS               1228
#define BSIM4_MOD_PAIGS               1229
#define BSIM4_MOD_PBIGS               1230
#define BSIM4_MOD_PCIGS               1231
#define BSIM4_MOD_AIGD                1232
#define BSIM4_MOD_BIGD                1233
#define BSIM4_MOD_CIGD                1234
#define BSIM4_MOD_LAIGD               1235
#define BSIM4_MOD_LBIGD               1236
#define BSIM4_MOD_LCIGD               1237
#define BSIM4_MOD_WAIGD               1238
#define BSIM4_MOD_WBIGD               1239
#define BSIM4_MOD_WCIGD               1240
#define BSIM4_MOD_PAIGD               1241
#define BSIM4_MOD_PBIGD               1242
#define BSIM4_MOD_PCIGD               1243
#define BSIM4_MOD_DLCIGD              1244

#define BSIM4_MOD_NJTSD               1250
#define BSIM4_MOD_NJTSSWD             1251
#define BSIM4_MOD_NJTSSWGD            1252
#define BSIM4_MOD_TNJTSD              1253
#define BSIM4_MOD_TNJTSSWD            1254
#define BSIM4_MOD_TNJTSSWGD           1255

/* v4.7 temp dep of leakage current  */

#define BSIM4_MOD_TNFACTOR          1256
#define BSIM4_MOD_TETA0                    1257
#define BSIM4_MOD_TVOFFCV           1258
#define BSIM4_MOD_LTNFACTOR         1260
#define BSIM4_MOD_LTETA0            1261
#define BSIM4_MOD_LTVOFFCV          1262
#define BSIM4_MOD_WTNFACTOR         1264
#define BSIM4_MOD_WTETA0            1265
#define BSIM4_MOD_WTVOFFCV          1266
#define BSIM4_MOD_PTNFACTOR         1268
#define BSIM4_MOD_PTETA0            1269
#define BSIM4_MOD_PTVOFFCV          1270

/* tnoiMod=2 (v4.7) */
#define BSIM4_MOD_TNOIC             1272
#define BSIM4_MOD_RNOIC             1273

#define BSIM4_MOD_VGS_MAX           1301
#define BSIM4_MOD_VGD_MAX           1302
#define BSIM4_MOD_VGB_MAX           1303
#define BSIM4_MOD_VDS_MAX           1304
#define BSIM4_MOD_VBS_MAX           1305
#define BSIM4_MOD_VBD_MAX           1306
#define BSIM4_MOD_VGSR_MAX          1307
#define BSIM4_MOD_VGDR_MAX          1308
#define BSIM4_MOD_VGBR_MAX          1309
#define BSIM4_MOD_VBSR_MAX          1310
#define BSIM4_MOD_VBDR_MAX          1311

#include "bsim4ext.h"

extern void BSIM4evaluate(double,double,double,BSIM4instance*,BSIM4model*,
        double*,double*,double*, double*, double*, double*, double*,
        double*, double*, double*, double*, double*, double*, double*,
        double*, double*, double*, double*, CKTcircuit*);
extern int BSIM4debug(BSIM4model*, BSIM4instance*, CKTcircuit*, int);
extern int BSIM4checkModel(BSIM4model*, BSIM4instance*, CKTcircuit*);
extern int BSIM4PAeffGeo(double, int, int, double, double, double, double, double *, double *, double *, double *);
extern int BSIM4RdseffGeo(double, int, int, int, double, double, double, double, double, int, double *);
extern int BSIM4RdsEndIso(double, double, double, double, double, double, int, int, double *);
extern int BSIM4RdsEndSha(double, double, double, double, double, double, int, int, double *);

#endif /*BSIM4*/
