/*
4.12
makeSv.hoc is designed to work for the CA3 cell
*/
load_file("CA3morph.hoc")
strdef fName
objref savestate
proc mcVolt() { local voltInput localobj cell
// Inputs:
// $1 is v_init
voltInput = $1
// Makes cell with desired voltage
cell = new Cell(voltInput)
v_init = voltInput
makeSv()
// makeSv() makes the savestate for the cell type; the file is labelled with Vm
}
proc makeSv() { localobj f,sv
// Makes a savestate with labels for voltage.
// Does not set v_init: that must be declared before calling makeSv()
tstop = 1000
init1()
// init1 used because no savestate has been made yet
while (t<tstop) {
fadvance()
}
sprint(fName,"CA3stdstt%d.dat",v_init*-1)
f = new File(fName)
sv = new SaveState()
sv.save()
sv.fwrite(f)
f.close()
}
proc init1() {
// An init proc if no savestate has been made yet.
// Needs v_init to be declared prior to calling.
finitialize(v_init)
t=0
fcurrent()
frecord_init()
}
/************************************************************/
/**************** The actual script *************************/
/************************************************************/
objref pc
pc = new ParallelContext()
pc.runworker()
if (pc.nhost==1) {
for vo_ind = 1,7 {
mcVolt(((vo_ind*5)+50)*-1)
}
}else{
for vo_ind = 1,7 {
pc.submit("mcVolt",((vo_ind*5)+50)*-1)
// Inputs:
// $1 is v_init
}
while (pc.working) {
s = pc.retval
}
}
pc.done()