Skip to content

Regression

simulation_modelica_records.ATotal.mos (from (result.xml))

Failing for the past 1 build (Since #3809 )
Took 26 sec.

Stacktrace

Output mismatch (see stdout for details)

Standard Output

 + ATotal.mos                                                                        ... equation mismatch [time: 13]

==== Log C:\Windows\TEMP/omc-rtest-OpenModelica/simulation/modelica/records/ATotal.mos_temp5753/log-ATotal.mos
true
"Notification: Automatically loaded package Complex 3.2.1 due to uses annotation from Modelica.
"
"function Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp \"Temperature dependency of energy gap\"
  input Real temp(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) \"Temperature\";
  output Real ret(quantity = \"ElectricPotential\", unit = \"V\") \"Output voltage\";
algorithm
  ret := 1.16 + (-7.02e-4) * temp ^ 2.0 / (1108.0 + temp);
end Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp;

function Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp_old \"Temperature dependency of energy gap\"
  input Real temp(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) \"Temperature\";
  output Real ret(quantity = \"ElectricPotential\", unit = \"V\") \"Output voltage\";
  protected Real gap0(quantity = \"ElectricPotential\", unit = \"V\") = 1.16;
  protected Real coeff1(unit = \"V/K\") = 7.02e-4;
  protected Real coeff2(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) = 1108.0;
algorithm
  ret := gap0 - coeff1 * temp ^ 2.0 / (temp + coeff2);
end Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp_old;

function Modelica.Electrical.Spice3.Internal.Functions.junction2SPICE3MOSFET \"Junction current and conductance calculation, obsolete, use junction2SPICE3MOSFETRevised\"
  input Real current(quantity = \"ElectricCurrent\", unit = \"A\") \"Input current\";
  input Real cond(quantity = \"Conductance\", unit = \"S\") \"Input conductance\";
  input Real voltage(quantity = \"ElectricPotential\", unit = \"V\") \"Input voltage\";
  input Real temp(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) \"Device Temperature\";
  input Real ncoeff;
  input Real satcur(quantity = \"ElectricCurrent\", unit = \"A\") \"Saturation current\";
  output Real out_current(quantity = \"ElectricCurrent\", unit = \"A\") \"Calculated current\";
  output Real out_cond(quantity = \"Conductance\", unit = \"S\") \"Calculated conductance\";
  protected Real vte(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real max_exponent;
  protected Real evbd;
  protected Real evd;
  protected constant Real max_exp = 50.0;
  protected constant Real max_current(quantity = \"ElectricCurrent\", unit = \"A\") = 1e4;
algorithm
  out_current := current;
  out_cond := cond;
  if satcur > 1e-101 then
    vte := 8.61726105451295e-5 * temp * ncoeff;
    max_exponent := log(1e4 / satcur);
    max_exponent := min(50.0, max_exponent);
    if voltage <= 0.0 then
      out_cond := satcur / vte;
      out_current := out_cond * voltage;
      out_cond := 1e-12 + out_cond;
    elseif voltage >= max_exponent * vte then
      evd := exp(max_exponent);
      out_cond := satcur * evd / vte;
      out_current := satcur * (-1.0 + evd) + out_cond * (voltage - max_exponent * vte);
    else
      evbd := exp(voltage / vte);
      out_cond := 1e-12 + satcur * evbd / vte;
      out_current := satcur * (-1.0 + evbd);
    end if;
  else
    out_current := 0.0;
    out_cond := 0.0;
  end if;
end Modelica.Electrical.Spice3.Internal.Functions.junction2SPICE3MOSFET;

function Modelica.Electrical.Spice3.Internal.Functions.junctionCap \"Junction capacity, obsolete, use JunctionCapRevised\"
  input Real capin(quantity = \"Capacitance\", unit = \"F\", min = 0.0) \"Input capacitance\";
  input Real voltage(quantity = \"ElectricPotential\", unit = \"V\") \"Input voltage\";
  input Real depcap(quantity = \"ElectricPotential\", unit = \"V\");
  input Real mj;
  input Real phij;
  input Real f1(quantity = \"ElectricPotential\", unit = \"V\");
  input Real f2;
  input Real f3;
  output Real capout(quantity = \"Capacitance\", unit = \"F\", min = 0.0) \"Output capacitance\";
  output Real charge(quantity = \"ElectricCharge\", unit = \"C\") \"Output charge\";
  protected Real arg;
  protected Real sarg;
  protected Real czof2;
algorithm
  if voltage < depcap then
    arg := 1.0 - voltage / phij;
    if mj == 0.5 then
      sarg := 1.0 / sqrt(arg);
    else
      sarg := arg ^ (-mj);
    end if;
    capout := capin * sarg;
    charge := phij * capin * (1.0 - arg * sarg) / (1.0 - mj);
  else
    czof2 := capin / f2;
    capout := czof2 * (f3 + mj * voltage / phij);
    charge := capin * f1 + czof2 * (f3 * (voltage - depcap) + 0.5 * mj * (voltage ^ 2.0 - depcap ^ 2.0) / phij);
  end if;
end Modelica.Electrical.Spice3.Internal.Functions.junctionCap;

function Modelica.Electrical.Spice3.Internal.Functions.junctionCapCoeffs \"Coefficient calculation\"
  input Real mj;
  input Real fc;
  input Real phij(quantity = \"ElectricPotential\", unit = \"V\");
  output Real f1(quantity = \"ElectricPotential\", unit = \"V\");
  output Real f2;
  output Real f3;
  protected Real xfc;
algorithm
  xfc := log(1.0 - fc);
  f1 := phij * (1.0 - exp((1.0 - mj) * xfc)) / (1.0 - mj);
  f2 := exp((1.0 + mj) * xfc);
  f3 := 1.0 - fc * (1.0 + mj);
end Modelica.Electrical.Spice3.Internal.Functions.junctionCapCoeffs;

function Modelica.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3 \"Temperature dependency of junction parameters\"
  input Real phi0(quantity = \"ElectricPotential\", unit = \"V\");
  input Real cap0;
  input Real mcoeff;
  input Real temp(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) \"Device temperature\";
  input Real tnom(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) \"Nominal temperature\";
  output Real junctionpot(quantity = \"ElectricPotential\", unit = \"V\") \"Junction potential\";
  output Real jucntioncap \"Junction capacitance\";
  protected Real phibtemp(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real phibtnom(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real vt(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real vtnom(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real arg;
  protected Real fact2;
  protected Real pbfact;
  protected Real arg1;
  protected Real fact1;
  protected Real pbfact1;
  protected Real pbo;
  protected Real gmaold;
  protected Real gmanew;
algorithm
  phibtemp := Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(temp);
  phibtnom := Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(tnom);
  vt := 8.61726105451295e-5 * temp;
  vtnom := 8.61726105451295e-5 * tnom;
  arg := 1.345417051337526e20 + (-3.6214813234775923e22) * phibtemp / temp;
  fact2 := 0.003331667499583542 * temp;
  pbfact := (-2.0) * vt * (1.5 * log(fact2) + 1.6021918e-19 * arg);
  arg1 := 1.345417051337526e20 + (-3.6214813234775923e22) * phibtnom / tnom;
  fact1 := 0.003331667499583542 * tnom;
  pbfact1 := (-2.0) * vtnom * (1.5 * log(fact1) + 1.6021918e-19 * arg1);
  pbo := (phi0 - pbfact1) / fact1;
  junctionpot := pbfact + fact2 * pbo;
  gmaold := (phi0 - pbo) / pbo;
  gmanew := (junctionpot - pbo) / pbo;
  jucntioncap := cap0 * (1.0 + mcoeff * (4e-4 * (-300.15 + temp) - gmanew)) / (1.0 + mcoeff * (4e-4 * (-300.15 + tnom) - gmaold));
end Modelica.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3;

function Modelica.Electrical.Spice3.Internal.Functions.junctionPotDepTemp \"Temperature dependency of junction potential\"
  input Real phi0(quantity = \"ElectricPotential\", unit = \"V\");
  input Real temp(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) \"Device Temperature\";
  input Real tnom(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) \"Nominal Temperature\";
  output Real ret(quantity = \"ElectricPotential\", unit = \"V\") \"Output voltage\";
  protected Real phibtemp(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real phibtnom(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real vt(quantity = \"ElectricPotential\", unit = \"V\");
algorithm
  phibtemp := Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(temp);
  phibtnom := Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(tnom);
  vt := 8.61726105451295e-5 * temp;
  ret := (phi0 - phibtnom) * temp / tnom + phibtemp + 3.0 * vt * log(tnom / temp);
end Modelica.Electrical.Spice3.Internal.Functions.junctionPotDepTemp;

function Modelica.Electrical.Spice3.Internal.Functions.junctionVCrit \"Voltage limitation\"
  input Real temp(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) \"temperature\";
  input Real ncoeff;
  input Real satcur(quantity = \"ElectricCurrent\", unit = \"A\") \"Saturation current\";
  output Real ret \"Output value\";
  protected Real vte(quantity = \"ElectricPotential\", unit = \"V\");
algorithm
  vte := 8.61726105451295e-5 * temp * ncoeff;
  ret := vte * log(0.7071067811865475 * vte / satcur);
  ret := if ret > 1e10 then 1e10 else ret;
end Modelica.Electrical.Spice3.Internal.Functions.junctionVCrit;

function Modelica.Electrical.Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET \"Temperature dependency of saturation current\"
  input Real satcur0(quantity = \"ElectricCurrent\", unit = \"A\") \"Saturation current\";
  input Real temp(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) \"Device Temperature\";
  input Real tnom(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) \"Nominal Temperature\";
  output Real ret \"Output current\";
  protected Real vt(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real vtnom(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real energygaptnom(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real energygaptemp(quantity = \"ElectricPotential\", unit = \"V\");
algorithm
  vt := 8.61726105451295e-5 * temp;
  vtnom := 8.61726105451295e-5 * tnom;
  energygaptnom := Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(tnom);
  energygaptemp := Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(temp);
  ret := satcur0 * exp(energygaptnom / vtnom - energygaptemp / vt);
end Modelica.Electrical.Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET;

function Modelica.Electrical.Spice3.Internal.ModelcardMOS \"Automatically generated record constructor for Modelica.Electrical.Spice3.Internal.ModelcardMOS\"
  input Real VTO(quantity = \"ElectricPotential\", unit = \"V\") = -1e40;
  input Real KP(quantity = \"Transconductance\", unit = \"A/V2\") = -1e40;
  input Real GAMMA = -1e40;
  input Real PHI(quantity = \"ElectricPotential\", unit = \"V\") = -1e40;
  input Real LAMBDA(quantity = \"InversePotential\", unit = \"1/V\") = 0.0;
  input Real RD(quantity = \"Resistance\", unit = \"Ohm\") = -1e40;
  input Real RS(quantity = \"Resistance\", unit = \"Ohm\") = -1e40;
  input Real CBD(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = -1e40;
  input Real CBS(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = -1e40;
  input Real IS(quantity = \"ElectricCurrent\", unit = \"A\") = 1e-14;
  input Real PB(quantity = \"ElectricPotential\", unit = \"V\") = 0.8;
  input Real CGSO(quantity = \"Permittivity\", unit = \"F/m\", min = 0.0) = 0.0;
  input Real CGDO(quantity = \"Permittivity\", unit = \"F/m\", min = 0.0) = 0.0;
  input Real CGBO(quantity = \"Permittivity\", unit = \"F/m\", min = 0.0) = 0.0;
  input Real RSH(quantity = \"Resistance\", unit = \"Ohm\") = 0.0;
  input Real CJ(quantity = \"CapacitancePerArea\", unit = \"F/m2\") = 0.0;
  input Real MJ = 0.5;
  input Real CJSW(quantity = \"Permittivity\", unit = \"F/m\", min = 0.0) = 0.0;
  input Real MJSW = 0.5;
  input Real JS(quantity = \"CurrentDensity\", unit = \"A/m2\") = 0.0;
  input Real TOX(quantity = \"Length\", unit = \"m\") = -1e40;
  input Real NSUB = -1e40;
  input Real NSS(quantity = \"PerArea\", unit = \"1/cm2\") = 0.0;
  input Real TPG = 1.0;
  input Real LD(quantity = \"Length\", unit = \"m\") = 0.0;
  input Real UO(quantity = \"AreaPerVoltageSecond\", unit = \"cm2/(V.s)\") = 600.0;
  input Real KF = 0.0;
  input Real AF = 1.0;
  input Real FC = 0.5;
  input Real TNOM(quantity = \"ThermodynamicTemperature\", unit = \"degC\") = 27.0;
  protected Integer LEVEL = 1;
  output ModelcardMOS res;
end Modelica.Electrical.Spice3.Internal.ModelcardMOS;

function Modelica.Electrical.Spice3.Internal.Mos.CurrrentsCapacitances \"Automatically generated record constructor for Modelica.Electrical.Spice3.Internal.Mos.CurrrentsCapacitances\"
  input Real idrain(start = 0.0, quantity = \"ElectricCurrent\", unit = \"A\");
  input Real iBD(start = 0.0, quantity = \"ElectricCurrent\", unit = \"A\");
  input Real iBS(start = 0.0, quantity = \"ElectricCurrent\", unit = \"A\");
  input Real cGS(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real cGB(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real cGD(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real cBS(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real cBD(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capgd(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  output CurrrentsCapacitances res;
end Modelica.Electrical.Spice3.Internal.Mos.CurrrentsCapacitances;

function Modelica.Electrical.Spice3.Internal.Mos.DEVqmeyer \"Automatically generated record constructor for Modelica.Electrical.Spice3.Internal.Mos.DEVqmeyer\"
  input Real qm_capgb(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real qm_capgs(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real qm_capgd(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real qm_qgs(start = 0.0, quantity = \"ElectricCharge\", unit = \"C\");
  input Real qm_qgb(start = 0.0, quantity = \"ElectricCharge\", unit = \"C\");
  input Real qm_qgd(start = 0.0, quantity = \"ElectricCharge\", unit = \"C\");
  input Real qm_vgs(start = 0.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real qm_vgb(start = 0.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real qm_vgd(start = 0.0, quantity = \"ElectricPotential\", unit = \"V\");
  output DEVqmeyer res;
end Modelica.Electrical.Spice3.Internal.Mos.DEVqmeyer;

function Modelica.Electrical.Spice3.Internal.Mos.MosCalc \"Automatically generated record constructor for Modelica.Electrical.Spice3.Internal.Mos.MosCalc\"
  input Real m_vds(quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_vgs(quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_vbs(quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_cbs(quantity = \"ElectricCurrent\", unit = \"A\");
  input Real m_gbs(quantity = \"Conductance\", unit = \"S\");
  input Real m_cbd(quantity = \"ElectricCurrent\", unit = \"A\");
  input Real m_gbd(quantity = \"Conductance\", unit = \"S\");
  input Real m_cdrain(quantity = \"ElectricCurrent\", unit = \"A\");
  input Real m_gds(quantity = \"Conductance\", unit = \"S\");
  input Real m_gm(quantity = \"Transconductance\", unit = \"A/V2\");
  input Real m_gmbs(quantity = \"Transconductance\", unit = \"A/V2\");
  input Real m_capbsb(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_chargebsb(quantity = \"ElectricCharge\", unit = \"C\");
  input Real m_capbss(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_chargebss(quantity = \"ElectricCharge\", unit = \"C\");
  input Real m_capbdb(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_chargebdb(quantity = \"ElectricCharge\", unit = \"C\");
  input Real m_capbds(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_chargebds(quantity = \"ElectricCharge\", unit = \"C\");
  input Real m_Beta;
  input Real m_capGSovl(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capGDovl(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capGBovl(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capOx(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_von(quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_vdsat(quantity = \"ElectricPotential\", unit = \"V\");
  input Integer m_mode(start = 1);
  input Real m_lEff(quantity = \"Length\", unit = \"m\");
  input Real m_sourceResistance(quantity = \"Resistance\", unit = \"Ohm\");
  input Real m_drainResistance(quantity = \"Resistance\", unit = \"Ohm\");
  input Real m_tTransconductance(start = 0.0, quantity = \"Transconductance\", unit = \"A/V2\");
  input Real m_tSurfMob(start = 0.0, quantity = \"AreaPerVoltageSecond\", unit = \"cm2/(V.s)\");
  input Real m_tPhi(start = 0.7, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_tVto(start = 1.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_tSatCurDens(start = 0.0, quantity = \"CurrentDensity\", unit = \"A/m2\");
  input Real m_tDrainSatCur(start = 0.0, quantity = \"ElectricCurrent\", unit = \"A\");
  input Real m_tSourceSatCur(start = 0.0, quantity = \"ElectricCurrent\", unit = \"A\");
  input Real m_tCBDb(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_tCBDs(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_tCBSb(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_tCBSs(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_tCj(start = 0.0, quantity = \"CapacitancePerArea\", unit = \"F/m2\");
  input Real m_tCjsw(start = 0.0, quantity = \"Permittivity\", unit = \"F/m\", min = 0.0);
  input Real m_tBulkPot(start = 0.7, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_tDepCap(start = 0.35, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_tVbi(start = 1.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_VBScrit(start = 0.7, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_VBDcrit(start = 0.7, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_f1b(start = 0.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_f2b(start = 0.0);
  input Real m_f3b(start = 0.0);
  input Real m_f1s(start = 0.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_f2s(start = 0.0);
  input Real m_f3s(start = 0.0);
  input Real m_dVt(start = 0.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_capgd(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capgs(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capgb(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_qgs(start = 0.0, quantity = \"ElectricCharge\", unit = \"C\");
  input Real m_qgd(start = 0.0, quantity = \"ElectricCharge\", unit = \"C\");
  input Real m_qgb(start = 0.0, quantity = \"ElectricCharge\", unit = \"C\");
  output MosCalc res;
end Modelica.Electrical.Spice3.Internal.Mos.MosCalc;

function Modelica.Electrical.Spice3.Internal.Mos.MosModelLineParams \"Automatically generated record constructor for Modelica.Electrical.Spice3.Internal.Mos.MosModelLineParams\"
  input Real m_jctSatCurDensity(start = 0.0);
  input Real m_sheetResistance(start = 0.0, quantity = \"Resistance\", unit = \"Ohm\");
  input Real m_bulkJctPotential(start = 0.8);
  input Real m_bulkJctBotGradingCoeff(start = 0.5, quantity = \"LinearTemperatureCoefficient\", unit = \"1/K\");
  input Real m_bulkJctSideGradingCoeff(start = 0.5, quantity = \"LinearTemperatureCoefficient\", unit = \"1/K\");
  input Real m_oxideThickness(start = 1e-7);
  input Real m_oxideThicknessIsGiven;
  input Real m_gateSourceOverlapCapFactor(start = 0.0);
  input Real m_gateDrainOverlapCapFactor(start = 0.0);
  input Real m_gateBulkOverlapCapFactor(start = 0.0);
  input Real m_fNcoef(start = 0.0);
  input Real m_fNexp(start = 1.0);
  input Real m_mjswIsGiven;
  input Real m_cgsoIsGiven;
  input Real m_cgdoIsGiven;
  input Real m_cgboIsGiven;
  input Real m_pbIsGiven;
  input Real m_oxideCapFactor(start = 0.0);
  input Real m_vt0(start = 0.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_vtOIsGiven;
  input Real m_capBD(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capBDIsGiven;
  input Real m_capBS(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capBSIsGiven;
  input Real m_bulkCapFactor(start = 0.0, quantity = \"CapacitancePerArea\", unit = \"F/m2\");
  input Real m_bulkCapFactorIsGiven;
  input Real m_sideWallCapFactor(start = 0.0, quantity = \"Permittivity\", unit = \"F/m\", min = 0.0);
  input Real m_fwdCapDepCoeff(start = 0.5);
  input Real m_phi(start = 0.6, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_phiIsGiven;
  input Real m_gamma(start = 0.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_gammaIsGiven;
  input Real m_lambda(quantity = \"InversePotential\", unit = \"1/V\");
  input Real m_substrateDoping(start = 0.0);
  input Real m_substrateDopingIsGiven;
  input Real m_gateType(start = 1.0);
  input Real m_surfaceStateDensity(start = 0.0, quantity = \"PerArea\", unit = \"1/cm2\");
  input Real m_surfaceStateDensityIsGiven(start = 0.0);
  input Real m_surfaceMobility(start = 600.0, quantity = \"AreaPerVoltageSecond\", unit = \"cm2/(V.s)\");
  input Real m_latDiff(start = 0.0, quantity = \"Length\", unit = \"m\");
  input Real m_jctSatCur(start = 1e-14, quantity = \"ElectricCurrent\", unit = \"A\");
  input Real m_drainResistance(start = 0.0, quantity = \"Resistance\", unit = \"Ohm\");
  input Real m_drainResistanceIsGiven;
  input Real m_sourceResistance(start = 0.0, quantity = \"Resistance\", unit = \"Ohm\");
  input Real m_sourceResistanceIsGiven;
  input Real m_transconductance(quantity = \"Transconductance\", unit = \"A/V2\");
  input Real m_transconductanceIsGiven;
  input Real m_tnom(start = 300.15, quantity = \"ThermodynamicTemperature\", unit = \"K\", min = 0.0, nominal = 300.0, displayUnit = \"degC\");
  output MosModelLineParams res;
end Modelica.Electrical.Spice3.Internal.Mos.MosModelLineParams;

function Modelica.Electrical.Spice3.Internal.Mos.MosModelLineVariables \"Automatically generated record constructor for Modelica.Electrical.Spice3.Internal.Mos.MosModelLineVariables\"
  input Real m_oxideCapFactor;
  input Real m_vt0(quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_phi(quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_gamma;
  input Real m_transconductance(quantity = \"Transconductance\", unit = \"A/V2\");
  output MosModelLineVariables res;
end Modelica.Electrical.Spice3.Internal.Mos.MosModelLineVariables;

function Modelica.Electrical.Spice3.Internal.Mos.mosCalcCalcTempDependencies \"Precalculation relating to temperature\"
  input Modelica.Electrical.Spice3.Internal.Mos1.Mos1ModelLineParams in_p \"Input record model line parameters for MOS1\";
  input Modelica.Electrical.Spice3.Internal.SpiceConstants in_C \"Input record SPICE constants\";
  input Modelica.Electrical.Spice3.Internal.Mos.MosModelLineVariables in_vp \"Input record model line variables\";
  input Modelica.Electrical.Spice3.Internal.Mosfet.Mosfet in_m \"Input record MOSFET parameters\";
  input Modelica.Electrical.Spice3.Internal.Mos1.Mos1Calc in_c \"Input record Mos1Calc\";
  input Integer in_m_type \"Type of MOS transistor\";
  output Modelica.Electrical.Spice3.Internal.Mos1.Mos1Calc out_c \"Output record with calculated values\";
  protected Real ratio;
  protected Real ratio4;
  protected Real res;
algorithm
  out_c := in_c;
  ratio := in_m.m_dTemp / in_p.m_tnom;
  ratio4 := ratio ^ 1.5;
  out_c.m_tTransconductance := in_vp.m_transconductance / ratio4;
  out_c.m_Beta := out_c.m_tTransconductance * in_m.m_width / out_c.m_lEff;
  out_c.m_tSurfMob := in_p.m_surfaceMobility / ratio4;
  out_c.m_tPhi := Modelica.Electrical.Spice3.Internal.Functions.junctionPotDepTemp(in_vp.m_phi, in_m.m_dTemp, in_p.m_tnom);
  out_c.m_tVbi := in_vp.m_vt0 + 0.5 * (Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp_old(in_p.m_tnom) - Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp_old(in_m.m_dTemp)) + /*Real*/(in_m_type) * (0.5 * (out_c.m_tPhi - in_vp.m_phi) - in_vp.m_gamma * sqrt(in_vp.m_phi));
  out_c.m_tVto := out_c.m_tVbi + /*Real*/(in_m_type) * in_vp.m_gamma * sqrt(out_c.m_tPhi);
  out_c.m_tBulkPot := Modelica.Electrical.Spice3.Internal.Functions.junctionPotDepTemp(in_p.m_bulkJctPotential, in_m.m_dTemp, in_p.m_tnom);
  out_c.m_tDepCap := in_p.m_fwdCapDepCoeff * out_c.m_tBulkPot;
  if in_p.m_jctSatCurDensity == 0.0 or in_m.m_sourceArea == 0.0 or in_m.m_drainArea == 0.0 then
    out_c.m_tDrainSatCur := Modelica.Electrical.Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET(in_p.m_jctSatCur, in_m.m_dTemp, in_p.m_tnom);
    out_c.m_tSourceSatCur := out_c.m_tDrainSatCur;
    out_c.m_VBScrit := Modelica.Electrical.Spice3.Internal.Functions.junctionVCrit(in_m.m_dTemp, 1.0, out_c.m_tSourceSatCur);
    out_c.m_VBDcrit := out_c.m_VBScrit;
  else
    out_c.m_tSatCurDens := Modelica.Electrical.Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET(in_p.m_jctSatCurDensity, in_m.m_dTemp, in_p.m_tnom);
    out_c.m_tDrainSatCur := out_c.m_tSatCurDens * in_m.m_drainArea;
    out_c.m_tSourceSatCur := out_c.m_tSatCurDens * in_m.m_sourceArea;
    out_c.m_VBScrit := Modelica.Electrical.Spice3.Internal.Functions.junctionVCrit(in_m.m_dTemp, 1.0, out_c.m_tSourceSatCur);
    out_c.m_VBDcrit := Modelica.Electrical.Spice3.Internal.Functions.junctionVCrit(in_m.m_dTemp, 1.0, out_c.m_tDrainSatCur);
  end if;
  if not in_p.m_capBDIsGiven > 0.5 or not in_p.m_capBSIsGiven > 0.5 then
    (res, out_c.m_tCj) := Modelica.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3(in_p.m_bulkJctPotential, in_p.m_bulkCapFactor, in_p.m_bulkJctBotGradingCoeff, in_m.m_dTemp, in_p.m_tnom);
    (res, out_c.m_tCjsw) := Modelica.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3(in_p.m_bulkJctPotential, in_p.m_sideWallCapFactor, in_p.m_bulkJctSideGradingCoeff, in_m.m_dTemp, in_p.m_tnom);
    (out_c.m_f1s, out_c.m_f2s, out_c.m_f3s) := Modelica.Electrical.Spice3.Internal.Functions.junctionCapCoeffs(in_p.m_bulkJctSideGradingCoeff, in_p.m_fwdCapDepCoeff, out_c.m_tBulkPot);
  end if;
  if in_p.m_capBDIsGiven > 0.5 then
    (res, out_c.m_tCBDb) := Modelica.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3(in_p.m_bulkJctPotential, in_p.m_capBD, in_p.m_bulkJctBotGradingCoeff, in_m.m_dTemp, in_p.m_tnom);
    out_c.m_tCBDs := 0.0;
  else
    out_c.m_tCBDb := out_c.m_tCj * in_m.m_drainArea;
    out_c.m_tCBDs := out_c.m_tCjsw * in_m.m_drainPerimeter;
  end if;
  if in_p.m_capBSIsGiven > 0.5 then
    (res, out_c.m_tCBSb) := Modelica.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3(in_p.m_bulkJctPotential, in_p.m_capBS, in_p.m_bulkJctBotGradingCoeff, in_m.m_dTemp, in_p.m_tnom);
    out_c.m_tCBSs := 0.0;
  else
    out_c.m_tCBSb := out_c.m_tCj * in_m.m_sourceArea;
    out_c.m_tCBSs := out_c.m_tCjsw * in_m.m_sourcePerimeter;
  end if;
  (out_c.m_f1b, out_c.m_f2b, out_c.m_f3b) := Modelica.Electrical.Spice3.Internal.Functions.junctionCapCoeffs(in_p.m_bulkJctBotGradingCoeff, in_p.m_fwdCapDepCoeff, out_c.m_tBulkPot);
  out_c.m_dVt := 8.61726105451295e-5 * in_m.m_dTemp;
end Modelica.Electrical.Spice3.Internal.Mos.mosCalcCalcTempDependencies;

function Modelica.Electrical.Spice3.Internal.Mos.mosCalcDEVqmeyer \"Calculation of Meyer capacities\"
  input Real vgs(quantity = \"ElectricPotential\", unit = \"V\");
  input Real vgd(quantity = \"ElectricPotential\", unit = \"V\");
  input Real vgb(quantity = \"ElectricPotential\", unit = \"V\");
  input Modelica.Electrical.Spice3.Internal.Mos.MosCalc in_c \"Input variable set\";
  output Modelica.Electrical.Spice3.Internal.Mos.DEVqmeyer out_qm \"Qmeyer values\";
  protected Real vds(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real vddif(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real vddif1(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real vddif2(quantity = \"ElectricalPotential2\", unit = \"V2\");
  protected Real vgst(quantity = \"ElectricPotential\", unit = \"V\");
algorithm
  vgst := vgs - in_c.m_von;
  if vgst <= (-in_c.m_tPhi) then
    out_qm.qm_capgb := 0.5 * in_c.m_capOx;
    out_qm.qm_capgs := 0.0;
    out_qm.qm_capgd := 0.0;
  elseif vgst <= (-0.5) * in_c.m_tPhi then
    out_qm.qm_capgb := (-0.5) * vgst * in_c.m_capOx / in_c.m_tPhi;
    out_qm.qm_capgs := 0.0;
    out_qm.qm_capgd := 0.0;
  elseif vgst <= 0.0 then
    out_qm.qm_capgb := (-0.5) * vgst * in_c.m_capOx / in_c.m_tPhi;
    out_qm.qm_capgs := 0.6666666666666666 * vgst * in_c.m_capOx / in_c.m_tPhi + 0.3333333333333333 * in_c.m_capOx;
    out_qm.qm_capgd := 0.0;
  else
    vds := vgs - vgd;
    if in_c.m_vdsat <= vds then
      out_qm.qm_capgs := 0.3333333333333333 * in_c.m_capOx;
      out_qm.qm_capgd := 0.0;
      out_qm.qm_capgb := 0.0;
    else
      vddif := 2.0 * in_c.m_vdsat - vds;
      vddif1 := in_c.m_vdsat - vds;
      vddif2 := vddif ^ 2.0;
      out_qm.qm_capgd := 0.3333333333333333 * in_c.m_capOx * (1.0 - in_c.m_vdsat ^ 2.0 / vddif2);
      out_qm.qm_capgs := 0.3333333333333333 * in_c.m_capOx * (1.0 - vddif1 ^ 2.0 / vddif2);
      out_qm.qm_capgb := 0.0;
    end if;
  end if;
  out_qm.qm_qgs := 0.0;
  out_qm.qm_qgb := 0.0;
  out_qm.qm_qgd := 0.0;
  out_qm.qm_vgs := 0.0;
  out_qm.qm_vgb := 0.0;
  out_qm.qm_vgd := 0.0;
end Modelica.Electrical.Spice3.Internal.Mos.mosCalcDEVqmeyer;

function Modelica.Electrical.Spice3.Internal.Mos.mosCalcInitEquations \"Mosfet initial precalculations (level 1)\"
  input Modelica.Electrical.Spice3.Internal.Mos1.Mos1ModelLineParams in_p \"Input record model line parameters for MOS1\";
  input Modelica.Electrical.Spice3.Internal.SpiceConstants in_C \"Input record SPICE constants\";
  input Modelica.Electrical.Spice3.Internal.Mos.MosModelLineVariables in_vp \"Input record model line variables\";
  input Modelica.Electrical.Spice3.Internal.Mosfet.Mosfet in_m \"Input record MOSFET parameters\";
  output Modelica.Electrical.Spice3.Internal.Mos1.Mos1Calc out_c \"Output record Mos1 calculated values\";
algorithm
  out_c.m_drainResistance := if in_p.m_drainResistanceIsGiven > 0.5 then in_p.m_drainResistance else in_p.m_sheetResistance * in_m.m_drainSquares;
  out_c.m_sourceResistance := if in_p.m_sourceResistanceIsGiven > 0.5 then in_p.m_sourceResistance else in_p.m_sheetResistance * in_m.m_sourceSquares;
  out_c.m_lEff := in_m.m_len + (-2.0) * in_p.m_latDiff;
  if abs(out_c.m_lEff) < 1e-18 then
    out_c.m_lEff := 1e-6;
  end if;
  out_c.m_capGSovl := in_p.m_gateSourceOverlapCapFactor * in_m.m_width;
  out_c.m_capGDovl := in_p.m_gateDrainOverlapCapFactor * in_m.m_width;
  out_c.m_capGBovl := in_p.m_gateBulkOverlapCapFactor * out_c.m_lEff;
  out_c.m_capOx := in_vp.m_oxideCapFactor * out_c.m_lEff * in_m.m_width;
  out_c.m_tTransconductance := 0.0;
  out_c.m_tSurfMob := 0.0;
  out_c.m_tPhi := 0.7;
  out_c.m_tVto := 1.0;
  out_c.m_tSatCurDens := 0.0;
  out_c.m_tDrainSatCur := 0.0;
  out_c.m_tSourceSatCur := 0.0;
  out_c.m_tCBDb := 0.0;
  out_c.m_tCBDs := 0.0;
  out_c.m_tCBSb := 0.0;
  out_c.m_tCBSs := 0.0;
  out_c.m_tCj := 0.0;
  out_c.m_tCjsw := 0.0;
  out_c.m_tBulkPot := 0.7;
  out_c.m_tDepCap := 0.35;
  out_c.m_tVbi := 1.0;
  out_c.m_VBScrit := 0.7;
  out_c.m_VBDcrit := 0.7;
  out_c.m_f1b := 0.0;
  out_c.m_f2b := 0.0;
  out_c.m_f3b := 0.0;
  out_c.m_f1s := 0.0;
  out_c.m_f2s := 0.0;
  out_c.m_f3s := 0.0;
  out_c.m_dVt := 0.0;
  out_c.m_capgd := 0.0;
  out_c.m_capgs := 0.0;
  out_c.m_capgb := 0.0;
  out_c.m_qgs := 0.0;
  out_c.m_qgd := 0.0;
  out_c.m_qgb := 0.0;
  out_c.m_vds := 0.0;
  out_c.m_vgs := 0.0;
  out_c.m_vbs := 0.0;
  out_c.m_cbs := 0.0;
  out_c.m_gbs := 0.0;
  out_c.m_cbd := 0.0;
  out_c.m_gbd := 0.0;
  out_c.m_cdrain := 0.0;
  out_c.m_gds := 0.0;
  out_c.m_gm := 0.0;
  out_c.m_gmbs := 0.0;
  out_c.m_capbsb := 0.0;
  out_c.m_chargebsb := 0.0;
  out_c.m_capbss := 0.0;
  out_c.m_chargebss := 0.0;
  out_c.m_capbdb := 0.0;
  out_c.m_chargebdb := 0.0;
  out_c.m_capbds := 0.0;
  out_c.m_chargebds := 0.0;
  out_c.m_Beta := 0.0;
  out_c.m_von := 0.0;
  out_c.m_vdsat := 0.0;
  out_c.m_mode := 1;
end Modelica.Electrical.Spice3.Internal.Mos.mosCalcInitEquations;

function Modelica.Electrical.Spice3.Internal.Mos.mosCalcNoBypassCode \"Calculation of currents and capacities (level 1)\"
  input Modelica.Electrical.Spice3.Internal.Mosfet.Mosfet in_m \"Input record MOSFET parameters\";
  input Integer in_m_type \"Type of MOS transistor\";
  input Modelica.Electrical.Spice3.Internal.Mos1.Mos1Calc in_c \"Input record Mos1Calc\";
  input Modelica.Electrical.Spice3.Internal.Mos1.Mos1ModelLineParams in_p \"Input record model line parameters for MOS1\";
  input Modelica.Electrical.Spice3.Internal.SpiceConstants in_C \"Input record SPICE constants\";
  input Modelica.Electrical.Spice3.Internal.Mos.MosModelLineVariables in_vp \"Input record model line variables\";
  input Boolean in_m_bInit;
  input Real[4] in_m_pVoltageValues(quantity = \"ElectricPotential\", unit = \"V\");
  output Modelica.Electrical.Spice3.Internal.Mos.CurrrentsCapacitances out_cc;
  protected Real vbd(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real vgd(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real vgb(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real cur(quantity = \"ElectricCurrent\", unit = \"A\");
  protected Integer n;
  protected Modelica.Electrical.Spice3.Internal.Mos.DEVqmeyer qm;
  protected Modelica.Electrical.Spice3.Internal.Mos1.Mos1Calc int_c;
  protected Real hlp;
algorithm
  int_c := in_c;
  out_cc.m_capgd := 0.0;
  int_c.m_vgs := /*Real*/(in_m_type) * (in_m_pVoltageValues[1] - in_m_pVoltageValues[4]);
  int_c.m_vbs := /*Real*/(in_m_type) * (in_m_pVoltageValues[2] - in_m_pVoltageValues[4]);
  int_c.m_vds := /*Real*/(in_m_type) * (in_m_pVoltageValues[3] - in_m_pVoltageValues[4]);
  vbd := int_c.m_vbs - int_c.m_vds;
  vgd := int_c.m_vgs - int_c.m_vds;
  if int_c.m_vds >= 0.0 then
    vbd := int_c.m_vbs - int_c.m_vds;
  else
    int_c.m_vbs := vbd + int_c.m_vds;
  end if;
  vgb := int_c.m_vgs - int_c.m_vbs;
  (int_c.m_cbd, int_c.m_gbd) := Modelica.Electrical.Spice3.Internal.Functions.junction2SPICE3MOSFET(int_c.m_cbd, int_c.m_gbd, vbd, in_m.m_dTemp, 1.0, int_c.m_tDrainSatCur);
  out_cc.iBD := /*Real*/(in_m_type) * int_c.m_cbd;
  (int_c.m_cbs, int_c.m_gbs) := Modelica.Electrical.Spice3.Internal.Functions.junction2SPICE3MOSFET(int_c.m_cbs, int_c.m_gbs, int_c.m_vbs, in_m.m_dTemp, 1.0, int_c.m_tSourceSatCur);
  out_cc.iBS := /*Real*/(in_m_type) * int_c.m_cbs;
  int_c.m_mode := if int_c.m_vds >= 0.0 then 1 else -1;
  if int_c.m_mode == 1 then
    int_c := Modelica.Electrical.Spice3.Internal.Mos1.drainCur(int_c.m_vbs, int_c.m_vgs, int_c.m_vds, int_c, in_p, in_C, in_vp, in_m_type);
  else
    int_c := Modelica.Electrical.Spice3.Internal.Mos1.drainCur(vbd, vgd, -int_c.m_vds, int_c, in_p, in_C, in_vp, in_m_type);
  end if;
  n := if int_c.m_mode == 1 then 6 else 5;
  out_cc.idrain := /*Real*/(in_m_type) * int_c.m_cdrain * /*Real*/(int_c.m_mode);
  int_c.m_capbss := 0.0;
  int_c.m_chargebss := 0.0;
  int_c.m_capbds := 0.0;
  int_c.m_chargebds := 0.0;
  (int_c.m_capbsb, int_c.m_chargebsb) := Modelica.Electrical.Spice3.Internal.Functions.junctionCap(int_c.m_tCBSb, int_c.m_vbs, int_c.m_tDepCap, in_p.m_bulkJctBotGradingCoeff, int_c.m_tBulkPot, int_c.m_f1b, int_c.m_f2b, int_c.m_f3b);
  (int_c.m_capbdb, int_c.m_chargebdb) := Modelica.Electrical.Spice3.Internal.Functions.junctionCap(int_c.m_tCBDb, vbd, int_c.m_tDepCap, in_p.m_bulkJctBotGradingCoeff, int_c.m_tBulkPot, int_c.m_f1b, int_c.m_f2b, int_c.m_f3b);
  if not in_p.m_capBSIsGiven > 0.5 then
    (int_c.m_capbss, int_c.m_chargebss) := Modelica.Electrical.Spice3.Internal.Functions.junctionCap(int_c.m_tCBSs, int_c.m_vbs, int_c.m_tDepCap, in_p.m_bulkJctSideGradingCoeff, int_c.m_tBulkPot, int_c.m_f1s, int_c.m_f2s, int_c.m_f3s);
  end if;
  if not in_p.m_capBDIsGiven > 0.5 then
    (int_c.m_capbds, int_c.m_chargebds) := Modelica.Electrical.Spice3.Internal.Functions.junctionCap(int_c.m_tCBDs, vbd, int_c.m_tDepCap, in_p.m_bulkJctSideGradingCoeff, int_c.m_tBulkPot, int_c.m_f1s, int_c.m_f2s, int_c.m_f3s);
  end if;
  out_cc.cBS := if in_m_bInit then 1e-15 else int_c.m_capbsb + int_c.m_capbss;
  out_cc.cBD := if in_m_bInit then 1e-15 else int_c.m_capbdb + int_c.m_capbds;
  if int_c.m_mode > 0 then
    qm := Modelica.Electrical.Spice3.Internal.Mos.mosCalcDEVqmeyer(int_c.m_vgs, vgd, vgb, /*.Modelica.Electrical.Spice3.Internal.Mos.MosCalc*/(int_c));
  else
    qm := Modelica.Electrical.Spice3.Internal.Mos.mosCalcDEVqmeyer(vgd, int_c.m_vgs, vgb, /*.Modelica.Electrical.Spice3.Internal.Mos.MosCalc*/(int_c));
    hlp := qm.qm_capgd;
    qm.qm_capgd := qm.qm_capgs;
    qm.qm_capgs := hlp;
  end if;
  int_c.m_capgd := 2.0 * qm.qm_capgd + int_c.m_capGDovl;
  int_c.m_capgs := 2.0 * qm.qm_capgs + int_c.m_capGSovl;
  int_c.m_capgb := 2.0 * qm.qm_capgb + int_c.m_capGBovl;
  out_cc.cGB := if in_m_bInit then -1e40 else int_c.m_capgb;
  out_cc.cGD := if in_m_bInit then -1e40 else int_c.m_capgd;
  out_cc.cGS := if in_m_bInit then -1e40 else int_c.m_capgs;
end Modelica.Electrical.Spice3.Internal.Mos.mosCalcNoBypassCode;

function Modelica.Electrical.Spice3.Internal.Mos1.Mos1Calc \"Automatically generated record constructor for Modelica.Electrical.Spice3.Internal.Mos1.Mos1Calc\"
  input Real m_vds(quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_vgs(quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_vbs(quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_cbs(quantity = \"ElectricCurrent\", unit = \"A\");
  input Real m_gbs(quantity = \"Conductance\", unit = \"S\");
  input Real m_cbd(quantity = \"ElectricCurrent\", unit = \"A\");
  input Real m_gbd(quantity = \"Conductance\", unit = \"S\");
  input Real m_cdrain(quantity = \"ElectricCurrent\", unit = \"A\");
  input Real m_gds(quantity = \"Conductance\", unit = \"S\");
  input Real m_gm(quantity = \"Transconductance\", unit = \"A/V2\");
  input Real m_gmbs(quantity = \"Transconductance\", unit = \"A/V2\");
  input Real m_capbsb(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_chargebsb(quantity = \"ElectricCharge\", unit = \"C\");
  input Real m_capbss(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_chargebss(quantity = \"ElectricCharge\", unit = \"C\");
  input Real m_capbdb(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_chargebdb(quantity = \"ElectricCharge\", unit = \"C\");
  input Real m_capbds(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_chargebds(quantity = \"ElectricCharge\", unit = \"C\");
  input Real m_Beta;
  input Real m_capGSovl(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capGDovl(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capGBovl(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capOx(quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_von(quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_vdsat(quantity = \"ElectricPotential\", unit = \"V\");
  input Integer m_mode(start = 1);
  input Real m_lEff(quantity = \"Length\", unit = \"m\");
  input Real m_sourceResistance(quantity = \"Resistance\", unit = \"Ohm\");
  input Real m_drainResistance(quantity = \"Resistance\", unit = \"Ohm\");
  input Real m_tTransconductance(start = 0.0, quantity = \"Transconductance\", unit = \"A/V2\");
  input Real m_tSurfMob(start = 0.0, quantity = \"AreaPerVoltageSecond\", unit = \"cm2/(V.s)\");
  input Real m_tPhi(start = 0.7, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_tVto(start = 1.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_tSatCurDens(start = 0.0, quantity = \"CurrentDensity\", unit = \"A/m2\");
  input Real m_tDrainSatCur(start = 0.0, quantity = \"ElectricCurrent\", unit = \"A\");
  input Real m_tSourceSatCur(start = 0.0, quantity = \"ElectricCurrent\", unit = \"A\");
  input Real m_tCBDb(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_tCBDs(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_tCBSb(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_tCBSs(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_tCj(start = 0.0, quantity = \"CapacitancePerArea\", unit = \"F/m2\");
  input Real m_tCjsw(start = 0.0, quantity = \"Permittivity\", unit = \"F/m\", min = 0.0);
  input Real m_tBulkPot(start = 0.7, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_tDepCap(start = 0.35, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_tVbi(start = 1.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_VBScrit(start = 0.7, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_VBDcrit(start = 0.7, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_f1b(start = 0.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_f2b(start = 0.0);
  input Real m_f3b(start = 0.0);
  input Real m_f1s(start = 0.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_f2s(start = 0.0);
  input Real m_f3s(start = 0.0);
  input Real m_dVt(start = 0.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_capgd(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capgs(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capgb(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_qgs(start = 0.0, quantity = \"ElectricCharge\", unit = \"C\");
  input Real m_qgd(start = 0.0, quantity = \"ElectricCharge\", unit = \"C\");
  input Real m_qgb(start = 0.0, quantity = \"ElectricCharge\", unit = \"C\");
  output Mos1Calc res;
end Modelica.Electrical.Spice3.Internal.Mos1.Mos1Calc;

function Modelica.Electrical.Spice3.Internal.Mos1.Mos1ModelLineParams \"Automatically generated record constructor for Modelica.Electrical.Spice3.Internal.Mos1.Mos1ModelLineParams\"
  input Real m_jctSatCurDensity(start = 0.0);
  input Real m_sheetResistance(start = 0.0, quantity = \"Resistance\", unit = \"Ohm\");
  input Real m_bulkJctPotential(start = 0.8);
  input Real m_bulkJctBotGradingCoeff(start = 0.5, quantity = \"LinearTemperatureCoefficient\", unit = \"1/K\");
  input Real m_bulkJctSideGradingCoeff(start = 0.5, quantity = \"LinearTemperatureCoefficient\", unit = \"1/K\");
  input Real m_oxideThickness(start = 1e-7);
  input Real m_oxideThicknessIsGiven;
  input Real m_gateSourceOverlapCapFactor(start = 0.0);
  input Real m_gateDrainOverlapCapFactor(start = 0.0);
  input Real m_gateBulkOverlapCapFactor(start = 0.0);
  input Real m_fNcoef(start = 0.0);
  input Real m_fNexp(start = 1.0);
  input Real m_mjswIsGiven;
  input Real m_cgsoIsGiven;
  input Real m_cgdoIsGiven;
  input Real m_cgboIsGiven;
  input Real m_pbIsGiven;
  input Real m_oxideCapFactor(start = 0.0);
  input Real m_vt0(start = 0.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_vtOIsGiven;
  input Real m_capBD(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capBDIsGiven;
  input Real m_capBS(start = 0.0, quantity = \"Capacitance\", unit = \"F\", min = 0.0);
  input Real m_capBSIsGiven;
  input Real m_bulkCapFactor(start = 0.0, quantity = \"CapacitancePerArea\", unit = \"F/m2\");
  input Real m_bulkCapFactorIsGiven;
  input Real m_sideWallCapFactor(start = 0.0, quantity = \"Permittivity\", unit = \"F/m\", min = 0.0);
  input Real m_fwdCapDepCoeff(start = 0.5);
  input Real m_phi(start = 0.6, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_phiIsGiven;
  input Real m_gamma(start = 0.0, quantity = \"ElectricPotential\", unit = \"V\");
  input Real m_gammaIsGiven;
  input Real m_lambda(start = 0.0, quantity = \"InversePotential\", unit = \"1/V\");
  input Real m_substrateDoping(start = 0.0);
  input Real m_substrateDopingIsGiven;
  input Real m_gateType(start = 1.0);
  input Real m_surfaceStateDensity(start = 0.0, quantity = \"PerArea\", unit = \"1/cm2\");
  input Real m_surfaceStateDensityIsGiven(start = 0.0);
  input Real m_surfaceMobility(start = 600.0, quantity = \"AreaPerVoltageSecond\", unit = \"cm2/(V.s)\");
  input Real m_latDiff(start = 0.0, quantity = \"Length\", unit = \"m\");
  input Real m_jctSatCur(start = 1e-14, quantity = \"ElectricCurrent\", unit = \"A\");
  input Real m_drainResistance(start = 0.0, quantity = \"Resistance\", unit = \"Ohm\");
  input Real m_drainResistanceIsGiven;
  input Real m_sourceResistance(start = 0.0, quantity = \"Resistance\", unit = \"Ohm\");
  input Real m_sourceResistanceIsGiven;
  input Real m_transconductance(start = 2e-5, quantity = \"Transconductance\", unit = \"A/V2\");
  input Real m_transconductanceIsGiven;
  input Real m_tnom(start = 300.15, quantity = \"ThermodynamicTemperature\", unit = \"K\", min = 0.0, nominal = 300.0, displayUnit = \"degC\");
  output Mos1ModelLineParams res;
end Modelica.Electrical.Spice3.Internal.Mos1.Mos1ModelLineParams;

function Modelica.Electrical.Spice3.Internal.Mos1.drainCur \"Drain current calculation\"
  input Real vb(quantity = \"ElectricPotential\", unit = \"V\");
  input Real vg(quantity = \"ElectricPotential\", unit = \"V\");
  input Real vds(quantity = \"ElectricPotential\", unit = \"V\");
  input Modelica.Electrical.Spice3.Internal.Mos1.Mos1Calc in_c \"Input record Mos1Calc\";
  input Modelica.Electrical.Spice3.Internal.Mos1.Mos1ModelLineParams in_p \"Input record model line parameters for MOS1\";
  input Modelica.Electrical.Spice3.Internal.SpiceConstants in_C \"Spice constants\";
  input Modelica.Electrical.Spice3.Internal.Mos.MosModelLineVariables in_vp \"Input record model line variables\";
  input Integer in_m_type \"Type of Mos transistor\";
  output Modelica.Electrical.Spice3.Internal.Mos1.Mos1Calc out_c \"Output record Mos1Calc\";
  protected Real arg;
  protected Real betap;
  protected Real sarg;
  protected Real vgst(quantity = \"ElectricPotential\", unit = \"V\");
algorithm
  out_c := in_c;
  if vb <= 0.0 then
    sarg := sqrt(out_c.m_tPhi - vb);
  else
    sarg := sqrt(out_c.m_tPhi);
    sarg := sarg + (-0.5) * vb / sarg;
    sarg := max(0.0, sarg);
  end if;
  out_c.m_von := out_c.m_tVbi * /*Real*/(in_m_type) + in_vp.m_gamma * sarg;
  vgst := vg - out_c.m_von;
  out_c.m_vdsat := max(vgst, 0.0);
  arg := if sarg <= 0.0 then 0.0 else 0.5 * in_vp.m_gamma / sarg;
  if vgst <= 0.0 then
    out_c.m_cdrain := 0.0;
    out_c.m_gm := 0.0;
    out_c.m_gds := 0.0;
    out_c.m_gmbs := 0.0;
  else
    betap := out_c.m_Beta * (1.0 + in_p.m_lambda * vds);
    if vgst <= vds then
      out_c.m_cdrain := 0.5 * betap * vgst ^ 2.0;
      out_c.m_gm := betap * vgst;
      out_c.m_gds := 0.5 * in_p.m_lambda * out_c.m_Beta * vgst ^ 2.0;
      out_c.m_gmbs := out_c.m_gm * arg;
    else
      out_c.m_cdrain := betap * vds * (vgst + (-0.5) * vds);
      out_c.m_gm := betap * vds;
      out_c.m_gds := betap * (vgst - vds) + in_p.m_lambda * out_c.m_Beta * vds * (vgst + (-0.5) * vds);
      out_c.m_gmbs := out_c.m_gm * arg;
    end if;
  end if;
end Modelica.Electrical.Spice3.Internal.Mos1.drainCur;

function Modelica.Electrical.Spice3.Internal.Mos1.mos1ModelLineParamsInitEquations \"Initial precalculation\"
  input Modelica.Electrical.Spice3.Internal.Mos1.Mos1ModelLineParams in_p \"Input record model line parameters for MOS1\";
  input Modelica.Electrical.Spice3.Internal.SpiceConstants in_C \"Spice constants\";
  input Integer in_m_type \"Type of MOS transistor\";
  output Modelica.Electrical.Spice3.Internal.Mos.MosModelLineVariables out_v \"Output record model line variables\";
  protected Real vtnom(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real fermis(quantity = \"ElectricPotential\", unit = \"V\");
  protected Real fermig;
  protected Real wkfng;
  protected Real wkfngs;
  protected Real egfet1;
  protected Real vfb;
algorithm
  out_v.m_oxideCapFactor := in_p.m_oxideCapFactor;
  out_v.m_transconductance := in_p.m_transconductance;
  out_v.m_phi := in_p.m_phi;
  out_v.m_gamma := in_p.m_gamma;
  out_v.m_vt0 := in_p.m_vt0;
  vtnom := 8.61726105451295e-5 * in_p.m_tnom;
  egfet1 := 1.16 + (-7.02e-4) * in_p.m_tnom ^ 2.0 / (1108.0 + in_p.m_tnom);
  if not in_p.m_oxideThicknessIsGiven > 0.5 or in_p.m_oxideThickness == 0.0 then
    if in_p.m_oxideThickness == 0.0 then
      out_v.m_oxideCapFactor := 0.0;
    end if;
  else
    out_v.m_oxideCapFactor := 3.45314379969e-11 / in_p.m_oxideThickness;
    if out_v.m_oxideCapFactor <> 0.0 then
      if not in_p.m_transconductanceIsGiven > 0.5 then
        out_v.m_transconductance := 1e-4 * in_p.m_surfaceMobility * out_v.m_oxideCapFactor;
      end if;
      if in_p.m_substrateDopingIsGiven > 0.5 then
        if 1e6 * in_p.m_substrateDoping > 1.45e16 then
          if not in_p.m_phiIsGiven > 0.5 then
            out_v.m_phi := 2.0 * vtnom * log(6.896551724137932e-11 * in_p.m_substrateDoping);
            out_v.m_phi := max(0.1, out_v.m_phi);
          end if;
          fermis := 0.5 * /*Real*/(in_m_type) * out_v.m_phi;
          wkfng := 3.2;
          if in_p.m_gateType <> 0.0 then
           
...[truncated 46949 chars]...
otected Real coeff1(unit = \"V/K\") = 7.02e-4;
 protected Real coeff2(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) = 1108.0;
 algorithm
 ret := gap0 - coeff1 * temp ^ 2.0 / (temp + coeff2);
 end Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp_old;
 
@@ -30,17 +30,17 @@
 protected Real vte(quantity = \"ElectricPotential\", unit = \"V\");
 protected Real max_exponent;
 protected Real evbd;
 protected Real evd;
 protected constant Real max_exp = 50.0;
-protected constant Real max_current(quantity = \"ElectricCurrent\", unit = \"A\") = 10000.0;
+protected constant Real max_current(quantity = \"ElectricCurrent\", unit = \"A\") = 1e4;
 algorithm
 out_current := current;
 out_cond := cond;
 if satcur > 1e-101 then
-vte := 8.61726105451295e-05 * temp * ncoeff;
-max_exponent := log(10000.0 / satcur);
+vte := 8.61726105451295e-5 * temp * ncoeff;
+max_exponent := log(1e4 / satcur);
 max_exponent := min(50.0, max_exponent);
 if voltage <= 0.0 then
 out_cond := satcur / vte;
 out_current := out_cond * voltage;
 out_cond := 1e-12 + out_cond;
@@ -127,23 +127,23 @@
 protected Real gmaold;
 protected Real gmanew;
 algorithm
 phibtemp := Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(temp);
 phibtnom := Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(tnom);
-vt := 8.61726105451295e-05 * temp;
-vtnom := 8.61726105451295e-05 * tnom;
-arg := 1.345417051337526e+20 + (-3.621481323477592e+22) * phibtemp / temp;
+vt := 8.61726105451295e-5 * temp;
+vtnom := 8.61726105451295e-5 * tnom;
+arg := 1.345417051337526e20 + (-3.6214813234775923e22) * phibtemp / temp;
 fact2 := 0.003331667499583542 * temp;
 pbfact := (-2.0) * vt * (1.5 * log(fact2) + 1.6021918e-19 * arg);
-arg1 := 1.345417051337526e+20 + (-3.621481323477592e+22) * phibtnom / tnom;
+arg1 := 1.345417051337526e20 + (-3.6214813234775923e22) * phibtnom / tnom;
 fact1 := 0.003331667499583542 * tnom;
 pbfact1 := (-2.0) * vtnom * (1.5 * log(fact1) + 1.6021918e-19 * arg1);
 pbo := (phi0 - pbfact1) / fact1;
 junctionpot := pbfact + fact2 * pbo;
 gmaold := (phi0 - pbo) / pbo;
 gmanew := (junctionpot - pbo) / pbo;
-jucntioncap := cap0 * (1.0 + mcoeff * (0.0004 * (-300.15 + temp) - gmanew)) / (1.0 + mcoeff * (0.0004 * (-300.15 + tnom) - gmaold));
+jucntioncap := cap0 * (1.0 + mcoeff * (4e-4 * (-300.15 + temp) - gmanew)) / (1.0 + mcoeff * (4e-4 * (-300.15 + tnom) - gmaold));
 end Modelica.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3;
 
 function Modelica.Electrical.Spice3.Internal.Functions.junctionPotDepTemp \"Temperature dependency of junction potential\"
 input Real phi0(quantity = \"ElectricPotential\", unit = \"V\");
 input Real temp(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) \"Device Temperature\";
@@ -153,24 +153,24 @@
 protected Real phibtnom(quantity = \"ElectricPotential\", unit = \"V\");
 protected Real vt(quantity = \"ElectricPotential\", unit = \"V\");
 algorithm
 phibtemp := Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(temp);
 phibtnom := Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(tnom);
-vt := 8.61726105451295e-05 * temp;
+vt := 8.61726105451295e-5 * temp;
 ret := (phi0 - phibtnom) * temp / tnom + phibtemp + 3.0 * vt * log(tnom / temp);
 end Modelica.Electrical.Spice3.Internal.Functions.junctionPotDepTemp;
 
 function Modelica.Electrical.Spice3.Internal.Functions.junctionVCrit \"Voltage limitation\"
 input Real temp(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) \"temperature\";
 input Real ncoeff;
 input Real satcur(quantity = \"ElectricCurrent\", unit = \"A\") \"Saturation current\";
 output Real ret \"Output value\";
 protected Real vte(quantity = \"ElectricPotential\", unit = \"V\");
 algorithm
-vte := 8.61726105451295e-05 * temp * ncoeff;
+vte := 8.61726105451295e-5 * temp * ncoeff;
 ret := vte * log(0.7071067811865475 * vte / satcur);
-ret := if ret > 10000000000.0 then 10000000000.0 else ret;
+ret := if ret > 1e10 then 1e10 else ret;
 end Modelica.Electrical.Spice3.Internal.Functions.junctionVCrit;
 
 function Modelica.Electrical.Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET \"Temperature dependency of saturation current\"
 input Real satcur0(quantity = \"ElectricCurrent\", unit = \"A\") \"Saturation current\";
 input Real temp(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) \"Device Temperature\";
@@ -179,27 +179,27 @@
 protected Real vt(quantity = \"ElectricPotential\", unit = \"V\");
 protected Real vtnom(quantity = \"ElectricPotential\", unit = \"V\");
 protected Real energygaptnom(quantity = \"ElectricPotential\", unit = \"V\");
 protected Real energygaptemp(quantity = \"ElectricPotential\", unit = \"V\");
 algorithm
-vt := 8.61726105451295e-05 * temp;
-vtnom := 8.61726105451295e-05 * tnom;
+vt := 8.61726105451295e-5 * temp;
+vtnom := 8.61726105451295e-5 * tnom;
 energygaptnom := Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(tnom);
 energygaptemp := Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(temp);
 ret := satcur0 * exp(energygaptnom / vtnom - energygaptemp / vt);
 end Modelica.Electrical.Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET;
 
 function Modelica.Electrical.Spice3.Internal.ModelcardMOS \"Automatically generated record constructor for Modelica.Electrical.Spice3.Internal.ModelcardMOS\"
-input Real VTO(quantity = \"ElectricPotential\", unit = \"V\") = -1e+40;
-input Real KP(quantity = \"Transconductance\", unit = \"A/V2\") = -1e+40;
-input Real GAMMA = -1e+40;
-input Real PHI(quantity = \"ElectricPotential\", unit = \"V\") = -1e+40;
+input Real VTO(quantity = \"ElectricPotential\", unit = \"V\") = -1e40;
+input Real KP(quantity = \"Transconductance\", unit = \"A/V2\") = -1e40;
+input Real GAMMA = -1e40;
+input Real PHI(quantity = \"ElectricPotential\", unit = \"V\") = -1e40;
 input Real LAMBDA(quantity = \"InversePotential\", unit = \"1/V\") = 0.0;
-input Real RD(quantity = \"Resistance\", unit = \"Ohm\") = -1e+40;
-input Real RS(quantity = \"Resistance\", unit = \"Ohm\") = -1e+40;
-input Real CBD(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = -1e+40;
-input Real CBS(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = -1e+40;
+input Real RD(quantity = \"Resistance\", unit = \"Ohm\") = -1e40;
+input Real RS(quantity = \"Resistance\", unit = \"Ohm\") = -1e40;
+input Real CBD(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = -1e40;
+input Real CBS(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = -1e40;
 input Real IS(quantity = \"ElectricCurrent\", unit = \"A\") = 1e-14;
 input Real PB(quantity = \"ElectricPotential\", unit = \"V\") = 0.8;
 input Real CGSO(quantity = \"Permittivity\", unit = \"F/m\", min = 0.0) = 0.0;
 input Real CGDO(quantity = \"Permittivity\", unit = \"F/m\", min = 0.0) = 0.0;
 input Real CGBO(quantity = \"Permittivity\", unit = \"F/m\", min = 0.0) = 0.0;
@@ -207,12 +207,12 @@
 input Real CJ(quantity = \"CapacitancePerArea\", unit = \"F/m2\") = 0.0;
 input Real MJ = 0.5;
 input Real CJSW(quantity = \"Permittivity\", unit = \"F/m\", min = 0.0) = 0.0;
 input Real MJSW = 0.5;
 input Real JS(quantity = \"CurrentDensity\", unit = \"A/m2\") = 0.0;
-input Real TOX(quantity = \"Length\", unit = \"m\") = -1e+40;
-input Real NSUB = -1e+40;
+input Real TOX(quantity = \"Length\", unit = \"m\") = -1e40;
+input Real NSUB = -1e40;
 input Real NSS(quantity = \"PerArea\", unit = \"1/cm2\") = 0.0;
 input Real TPG = 1.0;
 input Real LD(quantity = \"Length\", unit = \"m\") = 0.0;
 input Real UO(quantity = \"AreaPerVoltageSecond\", unit = \"cm2/(V.s)\") = 600.0;
 input Real KF = 0.0;
@@ -318,11 +318,11 @@
 input Real m_jctSatCurDensity(start = 0.0);
 input Real m_sheetResistance(start = 0.0, quantity = \"Resistance\", unit = \"Ohm\");
 input Real m_bulkJctPotential(start = 0.8);
 input Real m_bulkJctBotGradingCoeff(start = 0.5, quantity = \"LinearTemperatureCoefficient\", unit = \"1/K\");
 input Real m_bulkJctSideGradingCoeff(start = 0.5, quantity = \"LinearTemperatureCoefficient\", unit = \"1/K\");
-input Real m_oxideThickness(start = 1e-07);
+input Real m_oxideThickness(start = 1e-7);
 input Real m_oxideThicknessIsGiven;
 input Real m_gateSourceOverlapCapFactor(start = 0.0);
 input Real m_gateDrainOverlapCapFactor(start = 0.0);
 input Real m_gateBulkOverlapCapFactor(start = 0.0);
 input Real m_fNcoef(start = 0.0);
@@ -428,11 +428,11 @@
 else
 out_c.m_tCBSb := out_c.m_tCj * in_m.m_sourceArea;
 out_c.m_tCBSs := out_c.m_tCjsw * in_m.m_sourcePerimeter;
 end if;
 (out_c.m_f1b, out_c.m_f2b, out_c.m_f3b) := Modelica.Electrical.Spice3.Internal.Functions.junctionCapCoeffs(in_p.m_bulkJctBotGradingCoeff, in_p.m_fwdCapDepCoeff, out_c.m_tBulkPot);
-out_c.m_dVt := 8.61726105451295e-05 * in_m.m_dTemp;
+out_c.m_dVt := 8.61726105451295e-5 * in_m.m_dTemp;
 end Modelica.Electrical.Spice3.Internal.Mos.mosCalcCalcTempDependencies;
 
 function Modelica.Electrical.Spice3.Internal.Mos.mosCalcDEVqmeyer \"Calculation of Meyer capacities\"
 input Real vgs(quantity = \"ElectricPotential\", unit = \"V\");
 input Real vgd(quantity = \"ElectricPotential\", unit = \"V\");
@@ -490,11 +490,11 @@
 algorithm
 out_c.m_drainResistance := if in_p.m_drainResistanceIsGiven > 0.5 then in_p.m_drainResistance else in_p.m_sheetResistance * in_m.m_drainSquares;
 out_c.m_sourceResistance := if in_p.m_sourceResistanceIsGiven > 0.5 then in_p.m_sourceResistance else in_p.m_sheetResistance * in_m.m_sourceSquares;
 out_c.m_lEff := in_m.m_len + (-2.0) * in_p.m_latDiff;
 if abs(out_c.m_lEff) < 1e-18 then
-out_c.m_lEff := 1e-06;
+out_c.m_lEff := 1e-6;
 end if;
 out_c.m_capGSovl := in_p.m_gateSourceOverlapCapFactor * in_m.m_width;
 out_c.m_capGDovl := in_p.m_gateDrainOverlapCapFactor * in_m.m_width;
 out_c.m_capGBovl := in_p.m_gateBulkOverlapCapFactor * out_c.m_lEff;
 out_c.m_capOx := in_vp.m_oxideCapFactor * out_c.m_lEff * in_m.m_width;
@@ -621,13 +621,13 @@
 qm.qm_capgs := hlp;
 end if;
 int_c.m_capgd := 2.0 * qm.qm_capgd + int_c.m_capGDovl;
 int_c.m_capgs := 2.0 * qm.qm_capgs + int_c.m_capGSovl;
 int_c.m_capgb := 2.0 * qm.qm_capgb + int_c.m_capGBovl;
-out_cc.cGB := if in_m_bInit then -1e+40 else int_c.m_capgb;
-out_cc.cGD := if in_m_bInit then -1e+40 else int_c.m_capgd;
-out_cc.cGS := if in_m_bInit then -1e+40 else int_c.m_capgs;
+out_cc.cGB := if in_m_bInit then -1e40 else int_c.m_capgb;
+out_cc.cGD := if in_m_bInit then -1e40 else int_c.m_capgd;
+out_cc.cGS := if in_m_bInit then -1e40 else int_c.m_capgs;
 end Modelica.Electrical.Spice3.Internal.Mos.mosCalcNoBypassCode;
 
 function Modelica.Electrical.Spice3.Internal.Mos1.Mos1Calc \"Automatically generated record constructor for Modelica.Electrical.Spice3.Internal.Mos1.Mos1Calc\"
 input Real m_vds(quantity = \"ElectricPotential\", unit = \"V\");
 input Real m_vgs(quantity = \"ElectricPotential\", unit = \"V\");
@@ -697,11 +697,11 @@
 input Real m_jctSatCurDensity(start = 0.0);
 input Real m_sheetResistance(start = 0.0, quantity = \"Resistance\", unit = \"Ohm\");
 input Real m_bulkJctPotential(start = 0.8);
 input Real m_bulkJctBotGradingCoeff(start = 0.5, quantity = \"LinearTemperatureCoefficient\", unit = \"1/K\");
 input Real m_bulkJctSideGradingCoeff(start = 0.5, quantity = \"LinearTemperatureCoefficient\", unit = \"1/K\");
-input Real m_oxideThickness(start = 1e-07);
+input Real m_oxideThickness(start = 1e-7);
 input Real m_oxideThicknessIsGiven;
 input Real m_gateSourceOverlapCapFactor(start = 0.0);
 input Real m_gateDrainOverlapCapFactor(start = 0.0);
 input Real m_gateBulkOverlapCapFactor(start = 0.0);
 input Real m_fNcoef(start = 0.0);
@@ -737,11 +737,11 @@
 input Real m_jctSatCur(start = 1e-14, quantity = \"ElectricCurrent\", unit = \"A\");
 input Real m_drainResistance(start = 0.0, quantity = \"Resistance\", unit = \"Ohm\");
 input Real m_drainResistanceIsGiven;
 input Real m_sourceResistance(start = 0.0, quantity = \"Resistance\", unit = \"Ohm\");
 input Real m_sourceResistanceIsGiven;
-input Real m_transconductance(start = 2e-05, quantity = \"Transconductance\", unit = \"A/V2\");
+input Real m_transconductance(start = 2e-5, quantity = \"Transconductance\", unit = \"A/V2\");
 input Real m_transconductanceIsGiven;
 input Real m_tnom(start = 300.15, quantity = \"ThermodynamicTemperature\", unit = \"K\", min = 0.0, nominal = 300.0, displayUnit = \"degC\");
 output Mos1ModelLineParams res;
 end Modelica.Electrical.Spice3.Internal.Mos1.Mos1ModelLineParams;
 
@@ -809,24 +809,24 @@
 out_v.m_oxideCapFactor := in_p.m_oxideCapFactor;
 out_v.m_transconductance := in_p.m_transconductance;
 out_v.m_phi := in_p.m_phi;
 out_v.m_gamma := in_p.m_gamma;
 out_v.m_vt0 := in_p.m_vt0;
-vtnom := 8.61726105451295e-05 * in_p.m_tnom;
-egfet1 := 1.16 + (-0.000702) * in_p.m_tnom ^ 2.0 / (1108.0 + in_p.m_tnom);
+vtnom := 8.61726105451295e-5 * in_p.m_tnom;
+egfet1 := 1.16 + (-7.02e-4) * in_p.m_tnom ^ 2.0 / (1108.0 + in_p.m_tnom);
 if not in_p.m_oxideThicknessIsGiven > 0.5 or in_p.m_oxideThickness == 0.0 then
 if in_p.m_oxideThickness == 0.0 then
 out_v.m_oxideCapFactor := 0.0;
 end if;
 else
 out_v.m_oxideCapFactor := 3.45314379969e-11 / in_p.m_oxideThickness;
 if out_v.m_oxideCapFactor <> 0.0 then
 if not in_p.m_transconductanceIsGiven > 0.5 then
-out_v.m_transconductance := 0.0001 * in_p.m_surfaceMobility * out_v.m_oxideCapFactor;
+out_v.m_transconductance := 1e-4 * in_p.m_surfaceMobility * out_v.m_oxideCapFactor;
 end if;
 if in_p.m_substrateDopingIsGiven > 0.5 then
-if 1000000.0 * in_p.m_substrateDoping > 1.45e+16 then
+if 1e6 * in_p.m_substrateDoping > 1.45e16 then
 if not in_p.m_phiIsGiven > 0.5 then
 out_v.m_phi := 2.0 * vtnom * log(6.896551724137932e-11 * in_p.m_substrateDoping);
 out_v.m_phi := max(0.1, out_v.m_phi);
 end if;
 fermis := 0.5 * /*Real*/(in_m_type) * out_v.m_phi;
@@ -838,11 +838,11 @@
 wkfngs := -3.25 + wkfng + (-0.5) * egfet1 - fermis;
 if not in_p.m_gammaIsGiven > 0.5 then
 out_v.m_gamma := 5.761561600860045e-12 * sqrt(in_p.m_substrateDoping / out_v.m_oxideCapFactor);
 end if;
 if not in_p.m_vtOIsGiven > 0.5 then
-vfb := wkfngs + (-1.6021918e-15) * in_p.m_surfaceStateDensity / out_v.m_oxideCapFactor;
+vfb := wkfngs + (-1.6021918000000002e-15) * in_p.m_surfaceStateDensity / out_v.m_oxideCapFactor;
 out_v.m_vt0 := vfb + /*Real*/(in_m_type) * (out_v.m_gamma * sqrt(out_v.m_phi) + out_v.m_phi);
 end if;
 end if;
 end if;
 end if;
@@ -859,46 +859,46 @@
 intern.m_cgsoIsGiven := 0.0;
 intern.m_mjswIsGiven := 0.0;
 intern.m_pbIsGiven := 0.0;
 intern.m_surfaceStateDensityIsGiven := 0.0;
 intern.m_oxideCapFactor := 0.0;
-intern.m_vtOIsGiven := if ex.VTO > -1e+40 then 1.0 else 0.0;
-intern.m_vt0 := if ex.VTO > -1e+40 then ex.VTO else 0.0;
-intern.m_capBDIsGiven := if ex.CBD > -1e+40 then 1.0 else 0.0;
-intern.m_capBD := if ex.CBD > -1e+40 then ex.CBD else 0.0;
-intern.m_capBSIsGiven := if ex.CBS > -1e+40 then 1.0 else 0.0;
-intern.m_capBS := if ex.CBS > -1e+40 then ex.CBS else 0.0;
-intern.m_bulkCapFactorIsGiven := if ex.CJ > -1e+40 then 1.0 else 0.0;
-intern.m_bulkCapFactor := if ex.CJ > -1e+40 then ex.CJ else 0.0;
+intern.m_vtOIsGiven := if ex.VTO > -1e40 then 1.0 else 0.0;
+intern.m_vt0 := if ex.VTO > -1e40 then ex.VTO else 0.0;
+intern.m_capBDIsGiven := if ex.CBD > -1e40 then 1.0 else 0.0;
+intern.m_capBD := if ex.CBD > -1e40 then ex.CBD else 0.0;
+intern.m_capBSIsGiven := if ex.CBS > -1e40 then 1.0 else 0.0;
+intern.m_capBS := if ex.CBS > -1e40 then ex.CBS else 0.0;
+intern.m_bulkCapFactorIsGiven := if ex.CJ > -1e40 then 1.0 else 0.0;
+intern.m_bulkCapFactor := if ex.CJ > -1e40 then ex.CJ else 0.0;
 intern.m_sideWallCapFactor := ex.CJSW;
 intern.m_fwdCapDepCoeff := ex.FC;
-intern.m_phiIsGiven := if ex.PHI > -1e+40 then 1.0 else 0.0;
-intern.m_phi := if ex.PHI > -1e+40 then ex.PHI else 0.6;
-intern.m_gammaIsGiven := if ex.GAMMA > -1e+40 then 1.0 else 0.0;
-intern.m_gamma := if ex.GAMMA > -1e+40 then ex.GAMMA else 0.0;
+intern.m_phiIsGiven := if ex.PHI > -1e40 then 1.0 else 0.0;
+intern.m_phi := if ex.PHI > -1e40 then ex.PHI else 0.6;
+intern.m_gammaIsGiven := if ex.GAMMA > -1e40 then 1.0 else 0.0;
+intern.m_gamma := if ex.GAMMA > -1e40 then ex.GAMMA else 0.0;
 intern.m_lambda := ex.LAMBDA;
-intern.m_substrateDopingIsGiven := if ex.NSUB > -1e+40 then 1.0 else 0.0;
-intern.m_substrateDoping := if ex.NSUB > -1e+40 then ex.NSUB else 0.0;
+intern.m_substrateDopingIsGiven := if ex.NSUB > -1e40 then 1.0 else 0.0;
+intern.m_substrateDoping := if ex.NSUB > -1e40 then ex.NSUB else 0.0;
 intern.m_gateType := ex.TPG;
 intern.m_surfaceStateDensity := ex.NSS;
 intern.m_surfaceMobility := ex.UO;
 intern.m_latDiff := ex.LD;
 intern.m_jctSatCur := ex.IS;
-intern.m_drainResistanceIsGiven := if ex.RD > -1e+40 then 1.0 else 0.0;
-intern.m_drainResistance := if ex.RD > -1e+40 then ex.RD else 0.0;
-intern.m_sourceResistanceIsGiven := if ex.RS > -1e+40 then 1.0 else 0.0;
-intern.m_sourceResistance := if ex.RS > -1e+40 then ex.RS else 0.0;
-intern.m_transconductanceIsGiven := if ex.KP > -1e+40 then 1.0 else 0.0;
-intern.m_transconductance := if ex.KP > -1e+40 then ex.KP else 2e-05;
-intern.m_tnom := if ex.TNOM > -1e+40 then 273.15 + ex.TNOM else 300.15;
+intern.m_drainResistanceIsGiven := if ex.RD > -1e40 then 1.0 else 0.0;
+intern.m_drainResistance := if ex.RD > -1e40 then ex.RD else 0.0;
+intern.m_sourceResistanceIsGiven := if ex.RS > -1e40 then 1.0 else 0.0;
+intern.m_sourceResistance := if ex.RS > -1e40 then ex.RS else 0.0;
+intern.m_transconductanceIsGiven := if ex.KP > -1e40 then 1.0 else 0.0;
+intern.m_transconductance := if ex.KP > -1e40 then ex.KP else 2e-5;
+intern.m_tnom := if ex.TNOM > -1e40 then 273.15 + ex.TNOM else 300.15;
 intern.m_jctSatCurDensity := ex.JS;
 intern.m_sheetResistance := ex.RSH;
 intern.m_bulkJctPotential := ex.PB;
 intern.m_bulkJctBotGradingCoeff := ex.MJ;
 intern.m_bulkJctSideGradingCoeff := ex.MJSW;
-intern.m_oxideThicknessIsGiven := if ex.TOX > -1e+40 then 1.0 else 0.0;
-intern.m_oxideThickness := if ex.TOX > -1e+40 then ex.TOX else 0.0;
+intern.m_oxideThicknessIsGiven := if ex.TOX > -1e40 then 1.0 else 0.0;
+intern.m_oxideThickness := if ex.TOX > -1e40 then ex.TOX else 0.0;
 intern.m_gateSourceOverlapCapFactor := ex.CGSO;
 intern.m_gateDrainOverlapCapFactor := ex.CGDO;
 intern.m_gateBulkOverlapCapFactor := ex.CGBO;
 intern.m_fNcoef := ex.KF;
 intern.m_fNexp := ex.AF;
@@ -926,16 +926,16 @@
 dev.m_sourceArea := AS;
 dev.m_drainSquares := NRD;
 dev.m_sourceSquares := NRS;
 dev.m_drainPerimeter := PD;
 dev.m_sourcePerimeter := PS;
-dev.m_dICVDSIsGiven := if IC > -1e+40 then 1.0 else 0.0;
-dev.m_dICVDS := if IC > -1e+40 then IC else 0.0;
-dev.m_dICVGSIsGiven := if IC > -1e+40 then 1.0 else 0.0;
-dev.m_dICVGS := if IC > -1e+40 then IC else 0.0;
-dev.m_dICVBSIsGiven := if IC > -1e+40 then 1.0 else 0.0;
-dev.m_dICVBS := if IC > -1e+40 then IC else 0.0;
+dev.m_dICVDSIsGiven := if IC > -1e40 then 1.0 else 0.0;
+dev.m_dICVDS := if IC > -1e40 then IC else 0.0;
+dev.m_dICVGSIsGiven := if IC > -1e40 then 1.0 else 0.0;
+dev.m_dICVGS := if IC > -1e40 then IC else 0.0;
+dev.m_dICVBSIsGiven := if IC > -1e40 then 1.0 else 0.0;
+dev.m_dICVBS := if IC > -1e40 then IC else 0.0;
 dev.m_off := OFF;
 dev.m_bPMOS := mtype;
 dev.m_nLevel := 1;
 dev.m_dTemp := 273.15 + TEMP;
 dev.m_drainPerimiter := 0.0;
@@ -943,12 +943,12 @@
 dev.m_uic := false;
 end Modelica.Electrical.Spice3.Internal.Mos1.mos1RenameParametersDev;
 
 function Modelica.Electrical.Spice3.Internal.Mosfet.Mosfet \"Automatically generated record constructor for Modelica.Electrical.Spice3.Internal.Mosfet.Mosfet\"
 input Real m_dTemp(start = 300.15, quantity = \"ThermodynamicTemperature\", unit = \"K\", min = 0.0, nominal = 300.0, displayUnit = \"degC\");
-input Real m_len(start = 0.0001, quantity = \"Length\", unit = \"m\");
-input Real m_width(start = 0.0001, quantity = \"Length\", unit = \"m\");
+input Real m_len(start = 1e-4, quantity = \"Length\", unit = \"m\");
+input Real m_width(start = 1e-4, quantity = \"Length\", unit = \"m\");
 input Real m_drainArea(start = 0.0, quantity = \"Area\", unit = \"m2\");
 input Real m_sourceArea(start = 0.0, quantity = \"Area\", unit = \"m2\");
 input Real m_drainSquares(start = 1.0);
 input Real m_sourceSquares(start = 1.0);
 input Real m_drainPerimeter(start = 0.0, quantity = \"Length\", unit = \"m\");
@@ -967,27 +967,27 @@
 input Boolean m_uic;
 output Mosfet res;
 end Modelica.Electrical.Spice3.Internal.Mosfet.Mosfet;
 
 function Modelica.Electrical.Spice3.Internal.SpiceConstants \"Automatically generated record constructor for Modelica.Electrical.Spice3.Internal.SpiceConstants\"
-protected Real EPSSIL = 1.035943139907e-10;
+protected Real EPSSIL = 1.0359431399069999e-10;
 protected Real EPSOX = 3.453133e-11;
 protected Real CHARGE(quantity = \"ElectricCharge\", unit = \"C\") = 1.6021918e-19;
 protected Real CONSTCtoK(quantity = \"ThermodynamicTemperature\", unit = \"K\", min = 0.0, start = 288.15, nominal = 300.0, displayUnit = \"degC\") = 273.15;
 protected Real CONSTboltz(quantity = \"HeatCapacity\", unit = \"J/K\") = 1.3806226e-23;
 protected Real REFTEMP(quantity = \"ThermodynamicTemperature\", unit = \"K\", min = 0.0, start = 288.15, nominal = 300.0, displayUnit = \"degC\") = 300.15;
-protected Real CONSTroot2 = 1.414213562373095;
-protected Real CONSTvt0(unit = \"(J/K)/(A.s)\") = 0.02586470905512062;
-protected Real CONSTKoverQ(unit = \"(J/K)/(A.s)\") = 8.61726105451295e-05;
+protected Real CONSTroot2 = 1.4142135623730951;
+protected Real CONSTvt0(unit = \"(J/K)/(A.s)\") = 0.025864709055120616;
+protected Real CONSTKoverQ(unit = \"(J/K)/(A.s)\") = 8.61726105451295e-5;
 protected Real CONSTe = 2.718281828459045;
 protected Real CKTgmin(quantity = \"Conductance\", unit = \"S\") = 1e-12;
 protected Real CKTnomTemp(quantity = \"ThermodynamicTemperature\", unit = \"K\", min = 0.0, start = 288.15, nominal = 300.0, displayUnit = \"degC\") = 300.15;
 protected Real CKTtemp(quantity = \"ThermodynamicTemperature\", unit = \"K\", min = 0.0, start = 288.15, nominal = 300.0, displayUnit = \"degC\") = 300.15;
 protected Real CKTdefaultMosAD(quantity = \"Area\", unit = \"m2\") = 0.0;
 protected Real CKTdefaultMosAS(quantity = \"Area\", unit = \"m2\") = 0.0;
-protected Real CKTdefaultMosL(quantity = \"Length\", unit = \"m\") = 0.0001;
-protected Real CKTdefaultMosW(quantity = \"Length\", unit = \"m\") = 0.0001;
+protected Real CKTdefaultMosL(quantity = \"Length\", unit = \"m\") = 1e-4;
+protected Real CKTdefaultMosW(quantity = \"Length\", unit = \"m\") = 1e-4;
 protected Real CKTreltol = 1e-10;
 protected Real CKTabstol = 1e-15;
 protected Real CKTvolttol = 1e-10;
 protected Real CKTtemptol = 0.001;
 output SpiceConstants res;
@@ -1011,30 +1011,30 @@
 algorithm
 Kelvin := 273.15 + Celsius;
 end Modelica.SIunits.Conversions.from_degC;
 
 class A
-constant Real L(quantity = \"Length\", unit = \"m\") = 0.0001 \"Length\";
-constant Real W(quantity = \"Length\", unit = \"m\") = 0.0001 \"Width\";
+constant Real L(quantity = \"Length\", unit = \"m\") = 1e-4 \"Length\";
+constant Real W(quantity = \"Length\", unit = \"m\") = 1e-4 \"Width\";
 constant Real AD(quantity = \"Area\", unit = \"m2\") = 0.0 \"Area of the drain diffusion\";
 constant Real AS(quantity = \"Area\", unit = \"m2\") = 0.0 \"Area of the source diffusion\";
 constant Real PD(quantity = \"Length\", unit = \"m\") = 0.0 \"Perimeter of the drain junction\";
 constant Real PS(quantity = \"Length\", unit = \"m\") = 0.0 \"Perimeter of the source junction\";
 constant Real NRD = 1.0 \"Number of squares of the drain diffusions\";
 constant Real NRS = 1.0 \"Number of squares of the source diffusions\";
 constant Integer OFF = 0 \"Optional initial condition: 0 - IC not used, 1 - IC used, not implemented yet\";
-constant Real IC(quantity = \"ElectricPotential\", unit = \"V\") = -1e+40 \"Initial condition values, not implemented yet\";
+constant Real IC(quantity = \"ElectricPotential\", unit = \"V\") = -1e40 \"Initial condition values, not implemented yet\";
 constant Real TEMP(quantity = \"ThermodynamicTemperature\", unit = \"degC\") = 27.0 \"Operating temperature of the device\";
-constant Real modelcard.VTO(quantity = \"ElectricPotential\", unit = \"V\") = -1e+40 \"Zero-bias threshold voltage, default 0\";
-constant Real modelcard.KP(quantity = \"Transconductance\", unit = \"A/V2\") = -1e+40 \"Transconductance parameter, default 2e-5\";
-constant Real modelcard.GAMMA = -1e+40 \"Bulk threshold parameter, default 0\";
-constant Real modelcard.PHI(quantity = \"ElectricPotential\", unit = \"V\") = -1e+40 \"Surface potential, default 0.6\";
+constant Real modelcard.VTO(quantity = \"ElectricPotential\", unit = \"V\") = -1e40 \"Zero-bias threshold voltage, default 0\";
+constant Real modelcard.KP(quantity = \"Transconductance\", unit = \"A/V2\") = -1e40 \"Transconductance parameter, default 2e-5\";
+constant Real modelcard.GAMMA = -1e40 \"Bulk threshold parameter, default 0\";
+constant Real modelcard.PHI(quantity = \"ElectricPotential\", unit = \"V\") = -1e40 \"Surface potential, default 0.6\";
 constant Real modelcard.LAMBDA(quantity = \"InversePotential\", unit = \"1/V\") = 0.0 \"Channel-length modulation, default 0\";
-constant Real modelcard.RD(quantity = \"Resistance\", unit = \"Ohm\") = -1e+40 \"Drain ohmic resistance, default 0\";
-constant Real modelcard.RS(quantity = \"Resistance\", unit = \"Ohm\") = -1e+40 \"Source ohmic resistance, default 0\";
-constant Real modelcard.CBD(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = -1e+40 \"Zero-bias B-D junction capacitance, default 0\";
-constant Real modelcard.CBS(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = -1e+40 \"Zero-bias B-S junction capacitance, default 0\";
+constant Real modelcard.RD(quantity = \"Resistance\", unit = \"Ohm\") = -1e40 \"Drain ohmic resistance, default 0\";
+constant Real modelcard.RS(quantity = \"Resistance\", unit = \"Ohm\") = -1e40 \"Source ohmic resistance, default 0\";
+constant Real modelcard.CBD(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = -1e40 \"Zero-bias B-D junction capacitance, default 0\";
+constant Real modelcard.CBS(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = -1e40 \"Zero-bias B-S junction capacitance, default 0\";
 constant Real modelcard.IS(quantity = \"ElectricCurrent\", unit = \"A\") = 1e-14 \"Bulk junction saturation current\";
 constant Real modelcard.PB(quantity = \"ElectricPotential\", unit = \"V\") = 0.8 \"Bulk junction potential\";
 constant Real modelcard.CGSO(quantity = \"Permittivity\", unit = \"F/m\", min = 0.0) = 0.0 \"Gate-source overlap capacitance per meter channel width\";
 constant Real modelcard.CGDO(quantity = \"Permittivity\", unit = \"F/m\", min = 0.0) = 0.0 \"Gate-drain overlap capacitance per meter channel width\";
 constant Real modelcard.CGBO(quantity = \"Permittivity\", unit = \"F/m\", min = 0.0) = 0.0 \"Gate-bulk overlap capacitance per meter channel width\";
@@ -1042,38 +1042,38 @@
 constant Real modelcard.CJ(quantity = \"CapacitancePerArea\", unit = \"F/m2\") = 0.0 \"Zero-bias bulk junction bottom cap. per sq-meter of junction area\";
 constant Real modelcard.MJ = 0.5 \"Bulk junction bottom grading coefficient\";
 constant Real modelcard.CJSW(quantity = \"Permittivity\", unit = \"F/m\", min = 0.0) = 0.0 \"Zero-bias junction sidewall cap. per meter of junction perimeter\";
 constant Real modelcard.MJSW = 0.5 \"Bulk junction sidewall grading coefficient\";
 constant Real modelcard.JS(quantity = \"CurrentDensity\", unit = \"A/m2\") = 0.0 \"Bulk junction saturation current per sq-meter of junction area\";
-constant Real modelcard.TOX(quantity = \"Length\", unit = \"m\") = -1e+40 \"Oxide thickness, default 1e-7\";
-constant Real modelcard.NSUB = -1e+40 \"Substrate doping, default 0\";
+constant Real modelcard.TOX(quantity = \"Length\", unit = \"m\") = -1e40 \"Oxide thickness, default 1e-7\";
+constant Real modelcard.NSUB = -1e40 \"Substrate doping, default 0\";
 constant Real modelcard.NSS(quantity = \"PerArea\", unit = \"1/cm2\") = 0.0 \"Surface state density\";
 constant Real modelcard.TPG = 1.0 \"Type of gate material: +1 opp. to substrate, -1 same as substrate, 0 Al gate\";
 constant Real modelcard.LD(quantity = \"Length\", unit = \"m\") = 0.0 \"Lateral diffusion\";
 constant Real modelcard.UO(quantity = \"AreaPerVoltageSecond\", unit = \"cm2/(V.s)\") = 600.0 \"Surface mobility\";
 constant Real modelcard.KF = 0.0 \"Flicker noise coefficient\";
 constant Real modelcard.AF = 1.0 \"Flicker noise exponent\";
 constant Real modelcard.FC = 0.5 \"Coefficient for forward-bias depletion capacitance formula\";
 constant Real modelcard.TNOM(quantity = \"ThermodynamicTemperature\", unit = \"degC\") = 27.0 \"Parameter measurement temperature, default 27\";
 constant Integer modelcard.LEVEL = 1 \"Model level: Shichman-Hodges\";
-constant Real C.EPSSIL = 1.035943139907e-10;
+constant Real C.EPSSIL = 1.0359431399069999e-10;
 constant Real C.EPSOX = 3.453133e-11;
 constant Real C.CHARGE(quantity = \"ElectricCharge\", unit = \"C\") = 1.6021918e-19;
 constant Real C.CONSTCtoK(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) = 273.15;
 constant Real C.CONSTboltz(quantity = \"HeatCapacity\", unit = \"J/K\") = 1.3806226e-23;
 constant Real C.REFTEMP(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) = 300.15;
-constant Real C.CONSTroot2 = 1.414213562373095;
-constant Real C.CONSTvt0(unit = \"(J/K)/(A.s)\") = 0.02586470905512062;
-constant Real C.CONSTKoverQ(unit = \"(J/K)/(A.s)\") = 8.61726105451295e-05;
+constant Real C.CONSTroot2 = 1.4142135623730951;
+constant Real C.CONSTvt0(unit = \"(J/K)/(A.s)\") = 0.025864709055120616;
+constant Real C.CONSTKoverQ(unit = \"(J/K)/(A.s)\") = 8.61726105451295e-5;
 constant Real C.CONSTe = 2.718281828459045;
 constant Real C.CKTgmin(quantity = \"Conductance\", unit = \"S\") = 1e-12;
 constant Real C.CKTnomTemp(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) = 300.15;
 constant Real C.CKTtemp(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 288.15, nominal = 300.0) = 300.15;
 constant Real C.CKTdefaultMosAD(quantity = \"Area\", unit = \"m2\") = 0.0;
 constant Real C.CKTdefaultMosAS(quantity = \"Area\", unit = \"m2\") = 0.0;
-constant Real C.CKTdefaultMosL(quantity = \"Length\", unit = \"m\") = 0.0001;
-constant Real C.CKTdefaultMosW(quantity = \"Length\", unit = \"m\") = 0.0001;
+constant Real C.CKTdefaultMosL(quantity = \"Length\", unit = \"m\") = 1e-4;
+constant Real C.CKTdefaultMosW(quantity = \"Length\", unit = \"m\") = 1e-4;
 constant Real C.CKTreltol = 1e-10;
 constant Real C.CKTabstol = 1e-15;
 constant Real C.CKTvolttol = 1e-10;
 constant Real C.CKTtemptol = 0.001;
 constant Integer m_type = 1;
@@ -1081,11 +1081,11 @@
 constant Real p.m_jctSatCurDensity(start = 0.0) = 0.0 \"JS, Bulk jct. sat. current density, input - use tSatCurDens\";
 constant Real p.m_sheetResistance(quantity = \"Resistance\", unit = \"Ohm\", start = 0.0) = 0.0 \"RSH, Sheet resistance\";
 constant Real p.m_bulkJctPotential(start = 0.8) = 0.8 \"PB, Bulk junction potential, input - use tBulkPot\";
 constant Real p.m_bulkJctBotGradingCoeff(quantity = \"LinearTemperatureCoefficient\", unit = \"1/K\", start = 0.5) = 0.5 \"MJ, Bottom grading coefficient\";
 constant Real p.m_bulkJctSideGradingCoeff(quantity = \"LinearTemperatureCoefficient\", unit = \"1/K\", start = 0.5) = 0.5 \"MJSW, Side grading coefficient\";
-constant Real p.m_oxideThickness(start = 1e-07) = 0.0 \"TOX, Oxide thickness unit: micron\";
+constant Real p.m_oxideThickness(start = 1e-7) = 0.0 \"TOX, Oxide thickness unit: micron\";
 constant Real p.m_oxideThicknessIsGiven = 0.0 \"TOX, IsGiven value\";
 constant Real p.m_gateSourceOverlapCapFactor(start = 0.0) = 0.0 \"CGS0, Gate-source overlap cap\";
 constant Real p.m_gateDrainOverlapCapFactor(start = 0.0) = 0.0 \"CGD0, Gate-drain overlap cap\";
 constant Real p.m_gateBulkOverlapCapFactor(start = 0.0) = 0.0 \"CGB0, Gate-bulk overlap cap\";
 constant Real p.m_fNcoef(start = 0.0) = 0.0 \"KF, Flicker noise coefficient\";
@@ -1121,16 +1121,16 @@
 constant Real p.m_jctSatCur(quantity = \"ElectricCurrent\", unit = \"A\", start = 1e-14) = 1e-14 \"IS, Bulk junction sat. current\";
 constant Real p.m_drainResistance(quantity = \"Resistance\", unit = \"Ohm\", start = 0.0) = 0.0 \"RD, Drain ohmic resistance\";
 constant Real p.m_drainResistanceIsGiven = 0.0 \"Drain resistance IsGivenValue\";
 constant Real p.m_sourceResistance(quantity = \"Resistance\", unit = \"Ohm\", start = 0.0) = 0.0 \"RS, Source ohmic resistance\";
 constant Real p.m_sourceResistanceIsGiven = 0.0 \"Source resistance IsGivenValue\";
-constant Real p.m_transconductance(quantity = \"Transconductance\", unit = \"A/V2\", start = 2e-05) = 2e-05 \"input - use tTransconductance\";
+constant Real p.m_transconductance(quantity = \"Transconductance\", unit = \"A/V2\", start = 2e-5) = 2e-5 \"input - use tTransconductance\";
 constant Real p.m_transconductanceIsGiven = 0.0 \"Transconductance IsGivenValue\";
 constant Real p.m_tnom(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 300.15, nominal = 300.0) = 300.15 \"TNOM, Parameter measurement temperature\";
 constant Real m.m_dTemp(quantity = \"ThermodynamicTemperature\", unit = \"K\", displayUnit = \"degC\", min = 0.0, start = 300.15, nominal = 300.0) = 300.15 \"TEMP, Device Temperature\";
-constant Real m.m_len(quantity = \"Length\", unit = \"m\", start = 0.0001) = 0.0001 \"L, length of channel region\";
-constant Real m.m_width(quantity = \"Length\", unit = \"m\", start = 0.0001) = 0.0001 \"W, width of channel region\";
+constant Real m.m_len(quantity = \"Length\", unit = \"m\", start = 1e-4) = 1e-4 \"L, length of channel region\";
+constant Real m.m_width(quantity = \"Length\", unit = \"m\", start = 1e-4) = 1e-4 \"W, width of channel region\";
 constant Real m.m_drainArea(quantity = \"Area\", unit = \"m2\", start = 0.0) = 0.0 \"AD, area of drain diffusion\";
 constant Real m.m_sourceArea(quantity = \"Area\", unit = \"m2\", start = 0.0) = 0.0 \"AS, area of source diffusion\";
 constant Real m.m_drainSquares(start = 1.0) = 1.0 \"NRD, length of drain in squares\";
 constant Real m.m_sourceSquares(start = 1.0) = 1.0 \"NRS, length of source in squares\";
 constant Real m.m_drainPerimeter(quantity = \"Length\", unit = \"m\", start = 0.0) = 0.0 \"PD, Drain perimeter\";
@@ -1149,11 +1149,11 @@
 constant Boolean m.m_uic = false;
 constant Real vp.m_oxideCapFactor = 0.0;
 constant Real vp.m_vt0(quantity = \"ElectricPotential\", unit = \"V\") = 0.0;
 constant Real vp.m_phi(quantity = \"ElectricPotential\", unit = \"V\") = 0.6;
 constant Real vp.m_gamma = 0.0;
-constant Real vp.m_transconductance(quantity = \"Transconductance\", unit = \"A/V2\") = 2e-05;
+constant Real vp.m_transconductance(quantity = \"Transconductance\", unit = \"A/V2\") = 2e-5;
 constant Real c1.m_vds(quantity = \"ElectricPotential\", unit = \"V\") = 0.0 \"Vds, Drain-Source voltage\";
 constant Real c1.m_vgs(quantity = \"ElectricPotential\", unit = \"V\") = 0.0 \"Vgs, Gate-Source voltage\";
 constant Real c1.m_vbs(quantity = \"ElectricPotential\", unit = \"V\") = 0.0 \"Vbs, Bulk-Source voltage\";
 constant Real c1.m_cbs(quantity = \"ElectricCurrent\", unit = \"A\") = 0.0 \"Ibs, B-S junction current\";
 constant Real c1.m_gbs(quantity = \"Conductance\", unit = \"S\") = 0.0 \"Gbs, Bulk-Source conductance\";
@@ -1177,11 +1177,11 @@
 constant Real c1.m_capGBovl(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = 0.0 \"Cgbo, Gate-bulk overlap cap.\";
 constant Real c1.m_capOx(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = 0.0 \"Cox\";
 constant Real c1.m_von(quantity = \"ElectricPotential\", unit = \"V\") = 0.0 \"Von, Turn-on voltage\";
 constant Real c1.m_vdsat(quantity = \"ElectricPotential\", unit = \"V\") = 0.0 \"Vdsat\";
 constant Integer c1.m_mode(start = 1) = 1 \"Mode\";
-constant Real c1.m_lEff(quantity = \"Length\", unit = \"m\") = 0.0001;
+constant Real c1.m_lEff(quantity = \"Length\", unit = \"m\") = 1e-4;
 constant Real c1.m_sourceResistance(quantity = \"Resistance\", unit = \"Ohm\") = 0.0 \"Rs\";
 constant Real c1.m_drainResistance(quantity = \"Resistance\", unit = \"Ohm\") = 0.0 \"Rd\";
 constant Real c1.m_tTransconductance(quantity = \"Transconductance\", unit = \"A/V2\", start = 0.0) = 0.0;
 constant Real c1.m_tSurfMob(quantity = \"AreaPerVoltageSecond\", unit = \"cm2/(V.s)\", start = 0.0) = 0.0;
 constant Real c1.m_tPhi(quantity = \"ElectricPotential\", unit = \"V\", start = 0.7) = 0.7;
@@ -1230,22 +1230,22 @@
 constant Real c2.m_chargebss(quantity = \"ElectricCharge\", unit = \"C\") = 0.0 \"Qbss\";
 constant Real c2.m_capbdb(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = 0.0 \"Cbdb\";
 constant Real c2.m_chargebdb(quantity = \"ElectricCharge\", unit = \"C\") = 0.0 \"Qbdb\";
 constant Real c2.m_capbds(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = 0.0 \"Cbds\";
 constant Real c2.m_chargebds(quantity = \"ElectricCharge\", unit = \"C\") = 0.0 \"Qbds\";
-constant Real c2.m_Beta = 2e-05 \"Beta\";
+constant Real c2.m_Beta = 2e-5 \"Beta\";
 constant Real c2.m_capGSovl(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = 0.0 \"Cgso, Gate-source overlap cap.\";
 constant Real c2.m_capGDovl(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = 0.0 \"Cgdo, Gate-drain overlap cap.\";
 constant Real c2.m_capGBovl(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = 0.0 \"Cgbo, Gate-bulk overlap cap.\";
 constant Real c2.m_capOx(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = 0.0 \"Cox\";
 constant Real c2.m_von(quantity = \"ElectricPotential\", unit = \"V\") = 0.0 \"Von, Turn-on voltage\";
 constant Real c2.m_vdsat(quantity = \"ElectricPotential\", unit = \"V\") = 0.0 \"Vdsat\";
 constant Integer c2.m_mode(start = 1) = 1 \"Mode\";
-constant Real c2.m_lEff(quantity = \"Length\", unit = \"m\") = 0.0001;
+constant Real c2.m_lEff(quantity = \"Length\", unit = \"m\") = 1e-4;
 constant Real c2.m_sourceResistance(quantity = \"Resistance\", unit = \"Ohm\") = 0.0 \"Rs\";
 constant Real c2.m_drainResistance(quantity = \"Resistance\", unit = \"Ohm\") = 0.0 \"Rd\";
-constant Real c2.m_tTransconductance(quantity = \"Transconductance\", unit = \"A/V2\", start = 0.0) = 2e-05;
+constant Real c2.m_tTransconductance(quantity = \"Transconductance\", unit = \"A/V2\", start = 0.0) = 2e-5;
 constant Real c2.m_tSurfMob(quantity = \"AreaPerVoltageSecond\", unit = \"cm2/(V.s)\", start = 0.0) = 600.0;
 constant Real c2.m_tPhi(quantity = \"ElectricPotential\", unit = \"V\", start = 0.7) = 0.6;
 constant Real c2.m_tVto(quantity = \"ElectricPotential\", unit = \"V\", start = 1.0) = 0.0;
 constant Real c2.m_tSatCurDens(quantity = \"CurrentDensity\", unit = \"A/m2\", start = 0.0) = 0.0;
 constant Real c2.m_tDrainSatCur(quantity = \"ElectricCurrent\", unit = \"A\", start = 0.0) = 1e-14;
@@ -1265,11 +1265,11 @@
 constant Real c2.m_f2b(start = 0.0) = 0.3535533905932738;
 constant Real c2.m_f3b(start = 0.0) = 0.25;
 constant Real c2.m_f1s(quantity = \"ElectricPotential\", unit = \"V\", start = 0.0) = 0.4686291501015239;
 constant Real c2.m_f2s(start = 0.0) = 0.3535533905932738;
 constant Real c2.m_f3s(start = 0.0) = 0.25;
-constant Real c2.m_dVt(quantity = \"ElectricPotential\", unit = \"V\", start = 0.0) = 0.02586470905512062;
+constant Real c2.m_dVt(quantity = \"ElectricPotential\", unit = \"V\", start = 0.0) = 0.025864709055120616;
 constant Real c2.m_capgd(quantity = \"Capacitance\", unit = \"F\", min = 0.0, start = 0.0) = 0.0;
 constant Real c2.m_capgs(quantity = \"Capacitance\", unit = \"F\", min = 0.0, start = 0.0) = 0.0;
 constant Real c2.m_capgb(quantity = \"Capacitance\", unit = \"F\", min = 0.0, start = 0.0) = 0.0;
 constant Real c2.m_qgs(quantity = \"ElectricCharge\", unit = \"C\", start = 0.0) = 0.0;
 constant Real c2.m_qgd(quantity = \"ElectricCharge\", unit = \"C\", start = 0.0) = 0.0;
@@ -1285,12 +1285,33 @@
 constant Real cc.m_capgd(quantity = \"Capacitance\", unit = \"F\", min = 0.0) = 0.0;
 end A;
 "
 ""
 record SimulationResult
-resultFile = "A_res.mat",
-simulationOptions = "startTime = 0.0, stopTime = 1.0, numberOfIntervals = 500, tolerance = 1e-06, method = 'dassl', fileNamePrefix = 'A', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''",
-messages = "LOG_SUCCESS       | info    | The initialization finished successfully without homotopy method.
-LOG_SUCCESS       | info    | The simulation finished successfully.
-"
+resultFile = "",
+simulationOptions = "startTime = 0.0, stopTime = 1.0, numberOfIntervals = 500, tolerance = 1e-6, method = 'dassl', fileNamePrefix = 'A', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''",
+messages = "Failed to build model: A"
 end SimulationResult;
-""
+"Error: Error building simulator. Build log: make: Entering directory '/c/dev/jenkins/ws/Windows/OM_Win/TESTSU~1/SIMULA~1/modelica/records/ATOTAL~1.MOS'
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A.o A.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_functions.o A_functions.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_records.o A_records.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_01exo.o A_01exo.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_02nls.o A_02nls.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_03lsy.o A_03lsy.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_04set.o A_04set.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_05evt.o A_05evt.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_06inz.o A_06inz.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_07dly.o A_07dly.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_08bnd.o A_08bnd.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_09alg.o A_09alg.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_10asr.o A_10asr.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_11mix.o A_11mix.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_12jac.o A_12jac.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_13opt.o A_13opt.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_14lnz.o A_14lnz.c
+clang -municode  -O0 -DOM_HAVE_PTHREADS -Wno-parentheses-equality -falign-functions -mstackrealign -msse2 -mfpmath=sse     -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc/c\" -I\"C:/dev/jenkins/ws/Windows/OM_Win/build/include/omc\" -I. -DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -DOMC_MODEL_PREFIX=A -DOMC_NUM_MIXED_SYSTEMS=0 -DOMC_NUM_LINEAR_SYSTEMS=0 -DOMC_NUM_NONLINEAR_SYSTEMS=0 -DOMC_NDELAY_EXPRESSIONS=0 -DOMC_NVAR_STRING=0  -c -o A_15syn.o A_15syn.c
+Mingw-w64 runtime failure:
+VirtualProtect failed with code 0x5afmake: *** [<builtin>: A_15syn.o] Error 127
+make: Leaving directory '/c/dev/jenkins/ws/Windows/OM_Win/TESTSU~1/SIMULA~1/modelica/records/ATOTAL~1.MOS'
+RESULT: 2
+"
'' 
Equation mismatch: omc-diff says: 
Failed 'A' '"'
Line 1290: Text differs:
expected: resultFile = "A_res.mat",
got:      resultFile = "",

== 1 out of 1 tests failed [simulation/modelica/records/ATotal.mos_temp5753, time: 26]