1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
NEURON {
POINT_PROCESS watchtest
NONSPECIFIC_CURRENT i
GLOBAL ena, ek, erev, gna, gk, gpas
RANGE e, g
}
UNITS {
(mV) = (millivolt)
(nA) = (nanoamp)
(umho) = (micromho)
}
PARAMETER {
ena = 50 (mV)
ek = -80 (mV)
erev = -65 (mV)
gna = 0.1 (umho)
gk = 0.03 (umho)
gpas = 0.0001 (umho)
}
ASSIGNED {
v (mV)
i (nA)
e (mV)
g (umho)
}
CONSTRUCTOR {
VERBATIM
// only to verify that it is well handled
ENDVERBATIM
}
DESTRUCTOR {
VERBATIM
// only to verify that it is well handled
ENDVERBATIM
}
DEFINE init 1
DEFINE rise 2
DEFINE fall 3
DEFINE off 4
INITIAL {
g = gpas
e = erev
net_send(0, init)
}
BREAKPOINT {
i = g*(v - e)
}
NET_RECEIVE(w) {
if (flag == init) {
WATCH (v > -55) rise
}else if (flag == rise) {
g = gna
e = ena
WATCH (v > 10) fall
}else if (flag == fall) {
g = gk
e = ek
WATCH (v < -70) off
}
}
|