diff --git a/ChangeLog b/ChangeLog
index 4e49dec56..2be0af43d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
2007-11-14 Dietmar Warning
* src/frontend/inp.c: No title message to stderr - stdout is enough
* src/frontend/spiceif.c: reenable INPkillMods after deck processing
+ * src/spicelib/parser/inpdomod.c: til now only bsim4 has version processing
2007-11-13 Paolo Nenzi
* src/spicelib/devices/dev.c: As suggested by Alberto Lucchini and
diff --git a/src/spicelib/parser/inpdomod.c b/src/spicelib/parser/inpdomod.c
index 70a38b54a..e2290fea6 100644
--- a/src/spicelib/parser/inpdomod.c
+++ b/src/spicelib/parser/inpdomod.c
@@ -214,7 +214,6 @@ char *INPdomodel(void *ckt, card * image, INPtables * tab)
|| (strcmp(typename, "nsoi") == 0)
|| (strcmp(typename, "psoi") == 0)) {
err = INPfindLev(line, &lev);
- err = INPfindVer(line, ver);
switch (lev) {
case 0:
case 1:
@@ -275,6 +274,7 @@ char *INPdomodel(void *ckt, card * image, INPtables * tab)
break;
case 8:
type = INPtypelook("BSIM3");
+ err = INPfindVer(line, ver);
if (type < 0) {
err =
INPmkTemp
@@ -289,8 +289,9 @@ char *INPdomodel(void *ckt, card * image, INPtables * tab)
}
break;
case 14:
- type = INPtypelook("BSIM4");
- if ( (strstr(ver, "4.2")) || (strstr(ver, "4.2.1")) || (strstr(ver, "4.21")) ) {
+ err = INPfindVer(line, ver); /* mapping of minor versions are only placeholder */
+ if ( (strstr(ver, "4.2")) || (strstr(ver, "4.2.0")) || (strstr(ver, "4.20"))
+ || (strstr(ver, "4.2.1")) || (strstr(ver, "4.21")) ) {
type = INPtypelook("BSIM4v2");
}
if ( (strstr(ver, "4.3")) || (strstr(ver, "4.3.0")) || (strstr(ver, "4.30")) ) {
@@ -302,6 +303,11 @@ char *INPdomodel(void *ckt, card * image, INPtables * tab)
if ( (strstr(ver, "4.5")) || (strstr(ver, "4.5.0")) || (strstr(ver, "4.50")) ) {
type = INPtypelook("BSIM4v5");
}
+ if ( (strstr(ver, "default"))
+ || (strstr(ver, "4.6")) || (strstr(ver, "4.6.0")) || (strstr(ver, "4.60"))
+ || (strstr(ver, "4.6.1")) || (strstr(ver, "4.61")) ) {
+ type = INPtypelook("BSIM4");
+ }
if (type < 0) {
err =
INPmkTemp