: IClamp500.mod codes 500 Hz pulse current injection during current-clamp recoding.
:
: Takaki Watanabe
: wtakaki@m.u-tokyo.ac.jp

NEURON {
POINT_PROCESS IClamp500
RANGE del, dur, invl, amp, i 
ELECTRODE_CURRENT i
}

UNITS {
(nA) = (nanoamp)
   }

PARAMETER {
  	del (ms)
   	dur (ms)	<0,1e9>
	invl (ms) <0,1e9>
    amp (nA)
   }
ASSIGNED { i (nA) }

INITIAL {
   	i = 0
    }
  
 BREAKPOINT {
 	at_time(del)
 	at_time(del+dur)
	at_time(del+dur+invl)
   	if (t < del + dur  && t >= del ) {
   	i = amp
	}else if (t < del + dur + 1*(dur + invl) && t >= del + 1*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 2*(dur + invl) && t >= del + 2*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 3*(dur + invl) && t >= del + 3*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 4*(dur + invl) && t >= del + 4*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 5*(dur + invl) && t >= del + 5*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 6*(dur + invl) && t >= del + 6*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 7*(dur + invl) && t >= del + 7*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 8*(dur + invl) && t >= del + 8*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 9*(dur + invl) && t >= del + 9*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 10*(dur + invl) && t >= del + 10*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 11*(dur + invl) && t >= del + 11*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 12*(dur + invl) && t >= del + 12*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 13*(dur + invl) && t >= del + 13*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 14*(dur + invl) && t >= del + 14*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 15*(dur + invl) && t >= del + 15*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 16*(dur + invl) && t >= del + 16*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 17*(dur + invl) && t >= del + 17*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 18*(dur + invl) && t >= del + 18*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 19*(dur + invl) && t >= del + 19*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 20*(dur + invl) && t >= del + 20*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 21*(dur + invl) && t >= del + 21*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 22*(dur + invl) && t >= del + 22*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 23*(dur + invl) && t >= del + 23*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 24*(dur + invl) && t >= del + 24*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 25*(dur + invl) && t >= del + 25*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 26*(dur + invl) && t >= del + 26*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 27*(dur + invl) && t >= del + 27*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 28*(dur + invl) && t >= del + 28*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 29*(dur + invl) && t >= del + 29*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 30*(dur + invl) && t >= del + 30*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 31*(dur + invl) && t >= del + 31*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 32*(dur + invl) && t >= del + 32*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 33*(dur + invl) && t >= del + 33*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 34*(dur + invl) && t >= del + 34*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 35*(dur + invl) && t >= del + 35*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 36*(dur + invl) && t >= del + 36*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 37*(dur + invl) && t >= del + 37*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 38*(dur + invl) && t >= del + 38*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 39*(dur + invl) && t >= del + 39*(dur + invl)) {
	i = amp  
    }else if (t < del + dur + 40*(dur + invl) && t >= del + 40*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 41*(dur + invl) && t >= del + 41*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 42*(dur + invl) && t >= del + 42*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 43*(dur + invl) && t >= del + 43*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 44*(dur + invl) && t >= del + 44*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 45*(dur + invl) && t >= del + 45*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 46*(dur + invl) && t >= del + 46*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 47*(dur + invl) && t >= del + 47*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 48*(dur + invl) && t >= del + 48*(dur + invl)) {
	i = amp
	}else if (t < del + dur + 49*(dur + invl) && t >= del + 49*(dur + invl)) {
	i = amp 	
	}else{
	i = 0
   }
   }