diff --git a/examples/osdi/psp103/Modelcards/psp103_nmos-2.mod b/examples/osdi/psp103/Modelcards/psp103_nmos-2.mod index 9ce1e38e3..6f5ec9b1b 100644 --- a/examples/osdi/psp103/Modelcards/psp103_nmos-2.mod +++ b/examples/osdi/psp103/Modelcards/psp103_nmos-2.mod @@ -1,7 +1,7 @@ * psp_VA_and_CMC_ref_data 103.3.0 asym_nmos_t * LEVEL=103.0 * https://www.cea.fr/cea-tech/leti/pspsupport/Documents/Level%20103.3.3/psp_VA_and_CMC_ref_data.tar.gz -.model nch psp103va level=69 +.model nch pspnqs103va level=69 +type=1 +TR=27.0 +DTA=0 diff --git a/examples/osdi/psp103/Modelcards/psp103_pmos-2.mod b/examples/osdi/psp103/Modelcards/psp103_pmos-2.mod index b7604d3e2..0ed02bd04 100644 --- a/examples/osdi/psp103/Modelcards/psp103_pmos-2.mod +++ b/examples/osdi/psp103/Modelcards/psp103_pmos-2.mod @@ -1,7 +1,7 @@ * psp_VA_and_CMC_ref_data 103.3.0 asym_pmos_t * LEVEL=103.0 * https://www.cea.fr/cea-tech/leti/pspsupport/Documents/Level%20103.3.3/psp_VA_and_CMC_ref_data.tar.gz -.model pch psp103va level=69 +.model pch pspnqs103va level=69 +TYPE=-1 +TR=27.0 +DTA=0 diff --git a/src/spicelib/parser/inpgmod.c b/src/spicelib/parser/inpgmod.c index 44dc93989..9d902dc81 100644 --- a/src/spicelib/parser/inpgmod.c +++ b/src/spicelib/parser/inpgmod.c @@ -343,31 +343,33 @@ INPgetMod(CKTcircuit *ckt, char *name, INPmodel **model, INPtables *tab) printf("In INPgetMod, examining model %s ...\n", name); #endif - modtmp = nghash_find(modtabhash, name); - if (modtmp) { - /* found the model in question - now instantiate if necessary */ - /* and return an appropriate pointer to it */ + if (modtabhash) { + modtmp = nghash_find(modtabhash, name); + if (modtmp) { + /* found the model in question - now instantiate if necessary */ + /* and return an appropriate pointer to it */ -/* if illegal device type */ - if (modtmp->INPmodType < 0) { + /* if illegal device type */ + if (modtmp->INPmodType < 0) { #ifdef TRACE - printf("In INPgetMod, illegal device type for model %s ...\n", name); + printf("In INPgetMod, illegal device type for model %s ...\n", name); #endif - * model = NULL; - return tprintf("Unknown device type for model %s\n", name); - } - - /* create unless model is already defined */ - if (!modtmp->INPmodfast) { - int error = create_model(ckt, modtmp, tab); - if (error) { - *model = NULL; - return INPerror(error); + * model = NULL; + return tprintf("Unknown device type for model %s\n", name); } - } - *model = modtmp; - return NULL; + /* create unless model is already defined */ + if (!modtmp->INPmodfast) { + int error = create_model(ckt, modtmp, tab); + if (error) { + *model = NULL; + return INPerror(error); + } + } + + *model = modtmp; + return NULL; + } } #if (0) for (modtmp = modtab; modtmp; modtmp = modtmp->INPnextModel) { diff --git a/src/xspice/icm/analog/file_source/cfunc.mod b/src/xspice/icm/analog/file_source/cfunc.mod index f140831a5..4e5765b8d 100644 --- a/src/xspice/icm/analog/file_source/cfunc.mod +++ b/src/xspice/icm/analog/file_source/cfunc.mod @@ -233,6 +233,7 @@ void cm_filesource(ARGS) /* structure holding parms, inputs, outputs, etc. if (!loc->state->fp) { cm_message_printf("cannot open file %s", PARAM(file)); loc->state->atend = 1; + cm_cexit(1); } } /* read, preprocess and store the data */ diff --git a/src/xspice/icm/digital/d_process/cfunc.mod b/src/xspice/icm/digital/d_process/cfunc.mod index 7bfbd353b..22ae17cae 100644 --- a/src/xspice/icm/digital/d_process/cfunc.mod +++ b/src/xspice/icm/digital/d_process/cfunc.mod @@ -6,19 +6,29 @@ FILE d_process/cfunc.mod Copyright 2017-2018 Isotel d.o.o. http://www.isotel.eu PROJECT http://isotel.eu/mixedsim - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. +License: 3-clause BSD - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. AUTHORS diff --git a/src/xspice/icm/table/table2D/cfunc.mod b/src/xspice/icm/table/table2D/cfunc.mod index a5375c3e7..ff43938b4 100644 --- a/src/xspice/icm/table/table2D/cfunc.mod +++ b/src/xspice/icm/table/table2D/cfunc.mod @@ -732,6 +732,7 @@ EXITPOINT: free_local_data(loc); loc = (Table2_Data_t *) NULL; } + cm_cexit(1); } return loc; } /* end of function init_local_data */ diff --git a/src/xspice/icm/table/table3D/cfunc.mod b/src/xspice/icm/table/table3D/cfunc.mod index 2792cfdcc..606dc1dc6 100644 --- a/src/xspice/icm/table/table3D/cfunc.mod +++ b/src/xspice/icm/table/table3D/cfunc.mod @@ -802,6 +802,7 @@ EXITPOINT: free_local_data(loc); loc = (Table3_Data_t *) NULL; } + cm_cexit(1); } return loc; } /* end of function init_local_data */ diff --git a/visualc/sharedspice.sln b/visualc/sharedspice.sln index 9006b79bf..b63b8234c 100644 --- a/visualc/sharedspice.sln +++ b/visualc/sharedspice.sln @@ -1,9 +1,14 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29709.97 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.34202.233 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sharedspice", "sharedspice.vcxproj", "{83E315C7-EDD3-4F6B-AF28-87A92A4FA49A}" + ProjectSection(ProjectDependencies) = postProject + {B8DD41C5-70C6-4183-9018-C4B518E8D36A} = {B8DD41C5-70C6-4183-9018-C4B518E8D36A} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KLU_COMPLEX", "KLU\KLU_COMPLEX.vcxproj", "{B8DD41C5-70C6-4183-9018-C4B518E8D36A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -27,6 +32,18 @@ Global {83E315C7-EDD3-4F6B-AF28-87A92A4FA49A}.ReleaseOMP|x64.Build.0 = ReleaseOMP|x64 {83E315C7-EDD3-4F6B-AF28-87A92A4FA49A}.ReleaseOMP|x86.ActiveCfg = ReleaseOMP|Win32 {83E315C7-EDD3-4F6B-AF28-87A92A4FA49A}.ReleaseOMP|x86.Build.0 = ReleaseOMP|Win32 + {B8DD41C5-70C6-4183-9018-C4B518E8D36A}.Debug|x64.ActiveCfg = Debug|x64 + {B8DD41C5-70C6-4183-9018-C4B518E8D36A}.Debug|x64.Build.0 = Debug|x64 + {B8DD41C5-70C6-4183-9018-C4B518E8D36A}.Debug|x86.ActiveCfg = Debug|Win32 + {B8DD41C5-70C6-4183-9018-C4B518E8D36A}.Debug|x86.Build.0 = Debug|Win32 + {B8DD41C5-70C6-4183-9018-C4B518E8D36A}.Release|x64.ActiveCfg = Release|x64 + {B8DD41C5-70C6-4183-9018-C4B518E8D36A}.Release|x64.Build.0 = Release|x64 + {B8DD41C5-70C6-4183-9018-C4B518E8D36A}.Release|x86.ActiveCfg = Release|Win32 + {B8DD41C5-70C6-4183-9018-C4B518E8D36A}.Release|x86.Build.0 = Release|Win32 + {B8DD41C5-70C6-4183-9018-C4B518E8D36A}.ReleaseOMP|x64.ActiveCfg = Release|x64 + {B8DD41C5-70C6-4183-9018-C4B518E8D36A}.ReleaseOMP|x64.Build.0 = Release|x64 + {B8DD41C5-70C6-4183-9018-C4B518E8D36A}.ReleaseOMP|x86.ActiveCfg = Release|Win32 + {B8DD41C5-70C6-4183-9018-C4B518E8D36A}.ReleaseOMP|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE