celsius = 35

Rm = 28000
RmDend = Rm
RmSoma = Rm
RmAx = Rm

Cm    = 1
CmSoma = Cm
CmAx = Cm
CmDend = Cm

RaAll = 150
RaSoma =150  
RaAx = 50
Vrest =-65

forsec "axon" {
	insert pas e_pas=Vrest g_pas = 1/RmAx Ra=RaAx cm=CmAx
}

forsec "soma" {
	insert pas e_pas=Vrest g_pas = 1/RmSoma Ra=RaSoma cm=CmSoma
}

forsec "dendrite" {
	insert pas e_pas=Vrest g_pas = 1/RmDend Ra=RaAll cm=CmDend
}

forsec "user5" {
	insert pas e_pas=Vrest g_pas = 1/RmDend Ra=RaAll cm=CmDend
}


load_file("setnseg.hoc")

access soma
distance()

gna = 0.025
AXONM = 5
gkdr = 0.01
KMULT = 0.03
KMULTP =  0.03
ghd = 0.00005

forsec "axon" {   
	insert nax gbar_nax=gna*AXONM
	insert kdr gkdrbar_kdr=gkdr
	insert kap gkabar_kap=KMULTP
}

forsec "soma" {   
	insert hd ghdbar_hd=ghd vhalfl_hd=-73
	insert na3 gbar_na3=gna
	insert kdr gkdrbar_kdr=gkdr
	insert kap gkabar_kap=KMULTP				
}

for i = 0, numbasal - 1 dendrite[i] {
	insert hd ghdbar_hd=ghd vhalfl_hd=-73
	insert na3 gbar_na3=gna
	insert kdr gkdrbar_kdr=gkdr
	insert kap gkabar_kap=0
	insert kad gkabar_kad=0
	for(x) if(x > 0 && x < 1) {
		xdist = distance(x)
		ghdbar_hd(x) = ghd*(1+3*xdist/100)
		if(xdist > 100){
			vhalfl_hd=-81
			gkabar_kad(x) = KMULT*(1+xdist/100)
		} else {
			vhalfl_hd=-73
			gkabar_kap(x) = KMULTP*(1+xdist/100)
		}
	}
}

forsec "apical_dendrite" {
	insert hd ghdbar_hd=ghd
	insert na3 gbar_na3=gna
	insert kdr gkdrbar_kdr=gkdr
	insert kap gkabar_kap=0
	insert kad gkabar_kad=0
	for(x) if(x > 0 && x < 1) {
		xdist = distance(x)
		ghdbar_hd(x) = ghd*(1+3*xdist/100)
		if(xdist > 100) {
			vhalfl_hd=-81
			gkabar_kad(x) = KMULT*(1+xdist/100)
		} else {
			vhalfl_hd=-73
			gkabar_kap(x) = KMULTP*(1+xdist/100)
		}
	}
}

forsec "user5" {
	insert hd ghdbar_hd=ghd
	insert na3 gbar_na3=gna
	insert kdr gkdrbar_kdr=gkdr
	insert kap gkabar_kap=0
	insert kad gkabar_kad=0

	for(x) if(x > 0 && x < 1) {
		xdist = distance(x)
		ghdbar_hd(x) = ghd*(1+3*xdist/100)
		if(xdist > 100) {
			vhalfl_hd=-81
			gkabar_kad(x) = KMULT*(1+xdist/100)
		} else {
			vhalfl_hd=-73
			gkabar_kap(x) = KMULTP*(1+xdist/100)
		}
	}
}

proc init() {
	t = 0
	forall {
		v = Vrest
		if(ismembrane("nax") || ismembrane("na3")) {
			ena=55
		}
		if(ismembrane("kdr") || ismembrane("kap") || ismembrane("kad")) {
			ek=-90
		}
		if(ismembrane("hd")) {
			ehd_hd=-30
		}
	}
	finitialize(Vrest)
	fcurrent()
	forall {
		for(x) {
			if(ismembrane("na3") || ismembrane("nax")) {
				e_pas(x)=v(x)+(ina(x)+ik(x))/g_pas(x)
			}
			if(ismembrane("hd")) {
				e_pas(x)=e_pas(x)+i_hd(x)/g_pas(x)
			}
		}
	}
}