diff --git a/ChangeLog b/ChangeLog
index 61426abcd..5e6a6b538 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,11 @@
2003-12-26 Paolo Nenzi
- * src/spicelibe/devices/jfet/*: Added parallel multiplier and
+ * src/spicelib/devices/jfet/*: Added parallel multiplier and
"dtemp" parameter.
+
+ * src/spicelib/devices/jfet/jfetload.c: reintroduces the old model
+ code, superseded by Sydney code (Parker Skellern). The code is
+ not useed but is left as reference.
* DEVICES: Updated jfet status
diff --git a/DEVICES b/DEVICES
index 95cd80a8d..4c4b4a335 100644
--- a/DEVICES
+++ b/DEVICES
@@ -181,6 +181,7 @@ JFET - Junction Field Effect transistor
Enhancements over the original model:
+ - Alan Gillespie's modified diode model
- Parallel multiplier
- Instance temperature as difference for circuit temperature
diff --git a/src/spicelib/devices/jfet/jfetload.c b/src/spicelib/devices/jfet/jfetload.c
index 954e8fcdd..641f5822e 100644
--- a/src/spicelib/devices/jfet/jfetload.c
+++ b/src/spicelib/devices/jfet/jfetload.c
@@ -322,6 +322,78 @@ JFETload(GENmodel *inModel, CKTcircuit *ckt)
}
}
}
+
+#ifdef notdef
+ /* The original section is now commented out */
+ /* end Sydney University mod */
+ /*
+ * compute drain current and derivitives for normal mode
+ */
+ if (vds >= 0) {
+ vgst=vgs-model->JFETthreshold;
+ /*
+ * normal mode, cutoff region
+ */
+ if (vgst <= 0) {
+ cdrain=0;
+ gm=0;
+ gds=0;
+ } else {
+ betap=beta*(1+model->JFETlModulation*vds);
+ twob=betap+betap;
+ if (vgst <= vds) {
+ /*
+ * normal mode, saturation region
+ */
+ cdrain=betap*vgst*vgst;
+ gm=twob*vgst;
+ gds=model->JFETlModulation*beta*vgst*vgst;
+ } else {
+ /*
+ * normal mode, linear region
+ */
+ cdrain=betap*vds*(vgst+vgst-vds);
+ gm=twob*vds;
+ gds=twob*(vgst-vds)+model->JFETlModulation*beta*
+ vds*(vgst+vgst-vds);
+ }
+ }
+ } else {
+ /*
+ * compute drain current and derivitives for inverse mode
+ */
+ vgdt=vgd-model->JFETthreshold;
+ if (vgdt <= 0) {
+ /*
+ * inverse mode, cutoff region
+ */
+ cdrain=0;
+ gm=0;
+ gds=0;
+ } else {
+ /*
+ * inverse mode, saturation region
+ */
+ betap=beta*(1-model->JFETlModulation*vds);
+ twob=betap+betap;
+ if (vgdt <= -vds) {
+ cdrain = -betap*vgdt*vgdt;
+ gm = -twob*vgdt;
+ gds = model->JFETlModulation*beta*vgdt*vgdt-gm;
+ } else {
+ /*
+ * inverse mode, linear region
+ */
+ cdrain=betap*vds*(vgdt+vgdt+vds);
+ gm=twob*vds;
+ gds=twob*vgdt-model->JFETlModulation*beta*vds*
+ (vgdt+vgdt+vds);
+ }
+ }
+ }
+ /* end of original section, now deleted (replaced w/SU mod */
+#endif
+
/*
* compute equivalent drain current source
*/