: $Id: CA1ika.mod,v 1.2 2010/12/01 05:06:07 samn Exp $ 
TITLE Ika CA1

UNITS {
  (mA) = (milliamp)
  (mV) = (millivolt)
}
 
NEURON {
  SUFFIX kacurrent
  NONSPECIFIC_CURRENT ika, ikad
  RANGE g, gd, e, ninf, ntau, ndinf, ndtau, linf, ltau
}
 
PARAMETER {
  celsius	(degC)
  g= 0.048	(mho/cm2)
  gd= 0		(mho/cm2)
  e= -90	(mV)
}
 
STATE {
  n
  nd : distal
  l
}
 
ASSIGNED {
  v	(mV)
  ika	(mA/cm2) 
  ikad	(mA/cm2)
  ninf
  ntau  (ms)
  ndinf
  ndtau (ms)
  linf
  ltau	(ms)
}

PROCEDURE iassign () {
  ika=g*n*l*(v-e)
  ikad=gd*nd*l*(v-e)
}
 
BREAKPOINT {
  SOLVE states METHOD cnexp
  iassign()
}
 
DERIVATIVE states { 
  rates(v)
  n'= (ninf- n)/ ntau
  l'= (linf- l)/ ltau
  nd'= (ndinf-nd)/ndtau
}

INITIAL { 
  rates(v)
  n = ninf
  l = linf
  iassign()
}

PROCEDURE rates(v (mV)) {
  LOCAL  a, b
  UNITSOFF
  a = exp(-0.038*(1.5+1/(1+exp(v+40)/5))*(v-11))
  b =	exp(-0.038*(0.825+1/(1+exp(v+40)/5))*(v-11))
  ntau=4*b/(1+a)
  if (ntau<0.1) {ntau=0.1}
  ninf=1/(1+a)
	
  a=exp(-0.038*(1.8+1/(1+exp(v+40)/5))*(v+1))
  b=exp(-0.038*(0.7+1/(1+exp(v+40)/5))*(v+1))
  ndtau=2*b/(1+a)
  if (ndtau<0.1) {ndtau=0.1}
  ndinf=1/(1+a)

  a = exp(0.11*(v+56))
  ltau=0.26*(v+50)
  if (ltau<2) {ltau=2}
  linf=1/(1+a)
  UNITSON
}