// Trying to open ../diagnostic/tstop.dat
 // new end time timtot =   150.
 // Trying to open ../diagnostic/dt_F.dat
 // new dt =  0.002
 /* supaxax/supaxax_template.hoc
 automatically written from f2nrn/neuron_code_writer.f
 via subroutines that were inserted into the fortran
 code e.g., supaxax/integrate_supaxax.hoc
 
 The template's form was derived by
 Tom Morse and Michael Hines
 from a template, pyr3_template created
 by Roger Traub and Maciej Lazarewicz when they ported
 
         Traub RD, Buhl EH, Gloveli T, Whittington MA.
 Fast Rhythmic Bursting Can Be Induced in Layer 2/3
 Cortical Neurons by Enhancing Persistent Na(+)
 Conductance or by Blocking BK Channels.J Neurophysiol.
 2003 Feb;89(2):909-21.
 
 to NEURON
 
 */
 
 begintemplate supaxax
	public type
    	public name
    	strdef name
 
 // parts of the template were lifted from a default
 // cell writing from Network Builder NetGUI[0]
 
         public is_art
         public init, topol, basic_shape, subsets
         public geom, biophys 
         public synlist, x, y, z, position
         public connect2target
         public set_netcon_src_comp
         // the above function added to set neton
         // compartment source in the presyn cell
 
         public comp, level, Soma, Dendrites
         public Soma_Dendrites, Axon, all
         public presyn_comp, top_level
         // it is the responsibility of the calling
         // program to set the above presynaptic
         // compartment number
 
         external traub_connect
         objref this
  create  comp[ 59+1]
         objref level[ 9+1], Soma, Dendrites
         objref Soma_Dendrites, Axon
         objref synlist
func type() {return   3 }

         proc init() {
           doubler = 1
  comp[0] delete_section() // clean up for fortran code
            traub_connect( 59+1)
 
            titlePrint()
 
            presyn_comp = 59
            // in Traub model;changed by calling prog.
            objref Soma, Axon, Dendrites, Soma_Dendrites
            objref level
 
            topol()
            shape()
 
            geom()        // the geometry and
            subsets()        // subsets and
            biophys()  // active currents
            synlist = new List() // list of synapses
 // NetGUI[0] stores synapses in the cell object, in 
 // Traub model it is easier to store them outside
            set_doubler() // to double or not
            if (doubler) {double_dend_cond()}
                          /* for taking
  spine membrane area correction into account (the 
  method used doubles max cond's when spines present)
 */
             more_adjustments()
	name = "supaxax"
         }
         proc double_dend_cond() {
         /* this function gets replaced later with 
 another one if double_dend_cond() is tacked on. */
         }
 
         proc titlePrint() {
 
 /*              print "
                 print "-----"
                 print "
             print "supaxax Neuron Model based on "
             print "Traub RD et al (2005, 2003)"
                 print "
                 print "-----"
 Remove title printing with this comment for now.  
 Printing otherwise repeats (for each cell)
 -too voluminous for a network creation */
         }
 
         proc set_doubler() {doubler=0}
         // this function gets replaced with one that
         // sets doubler to 0 when there are no spines
         // in the cell (for no spines the additional
         // hoc code is written from integrate_cell.f
         // where cell is nRT, TCR.  Woops I just
         // found that deepaxax, deepbask, deepLTS,
         // supaxax, supbask, supLTS all use the script
         // cell/run_fortran.sh to replace the =1's with
         // =0's.  I will change the fortran code to
         // make it all run_fortran.sh replacements or
         // not for uniformity.
         proc topol() {
 // create comp[ 60] // note one greater than numcomp due to fortran indicies
  // last argument, parent location for connection
  // is overwritten to 1 for parents with connected children 
  // in below traub_connect proc calls
 traub_connect(this,  1,  54,   0.0611490233, 0)
 traub_connect(this,  1,  2,   0.0873746044, 1)
 traub_connect(this,  1,  15,   0.0873746044, 1)
 traub_connect(this,  1,  28,   0.0873746044, 1)
 traub_connect(this,  1,  41,   0.0873746044, 1)
 traub_connect(this,  2,  3,   0.0250126876, 1)
 traub_connect(this,  2,  4,   0.0250126876, 1)
 traub_connect(this,  3,  4,   0.0174532778, 1)
 traub_connect(this,  3,  5,   0.00988321907, 1)
 traub_connect(this,  3,  6,   0.00988321907, 1)
 traub_connect(this,  4,  7,   0.0174532778,  1.)
 traub_connect(this,  5,  6,   0.00689334805, 1)
 traub_connect(this,  5,  8,   0.00689334805,  1.)
 traub_connect(this,  6,  9,   0.00689334805,  1.)
 traub_connect(this,  7,  10,   0.0174532778,  1.)
 traub_connect(this,  8,  11,   0.00689334805,  1.)
 traub_connect(this,  11,  12,   0.00689334805,  1.)
 traub_connect(this,  12,  13,   0.00689334805,  1.)
 traub_connect(this,  13,  14,   0.00689334805,  1.)
 traub_connect(this,  15,  16,   0.0250126876, 1)
 traub_connect(this,  15,  17,   0.0250126876, 1)
 traub_connect(this,  16,  17,   0.0174532778, 1)
 traub_connect(this,  16,  18,   0.00988321907, 1)
 traub_connect(this,  16,  19,   0.00988321907, 1)
 traub_connect(this,  17,  20,   0.0174532778,  1.)
 traub_connect(this,  18,  19,   0.00689334805, 1)
 traub_connect(this,  18,  21,   0.00689334805,  1.)
 traub_connect(this,  19,  22,   0.00689334805,  1.)
 traub_connect(this,  20,  23,   0.0174532778,  1.)
 traub_connect(this,  21,  24,   0.00689334805,  1.)
 traub_connect(this,  24,  25,   0.00689334805,  1.)
 traub_connect(this,  25,  26,   0.00689334805,  1.)
 traub_connect(this,  26,  27,   0.00689334805,  1.)
 traub_connect(this,  28,  29,   0.0250126876, 1)
 traub_connect(this,  28,  30,   0.0250126876, 1)
 traub_connect(this,  29,  30,   0.0174532778, 1)
 traub_connect(this,  29,  31,   0.00988321907, 1)
 traub_connect(this,  29,  32,   0.00988321907, 1)
 traub_connect(this,  30,  33,   0.0174532778,  1.)
 traub_connect(this,  31,  32,   0.00689334805, 1)
 traub_connect(this,  31,  34,   0.00689334805,  1.)
 traub_connect(this,  32,  35,   0.00689334805,  1.)
 traub_connect(this,  33,  36,   0.0174532778,  1.)
 traub_connect(this,  34,  37,   0.00689334805,  1.)
 traub_connect(this,  37,  38,   0.00689334805,  1.)
 traub_connect(this,  38,  39,   0.00689334805,  1.)
 traub_connect(this,  39,  40,   0.00689334805,  1.)
 traub_connect(this,  41,  42,   0.0250126876, 1)
 traub_connect(this,  41,  43,   0.0250126876, 1)
 traub_connect(this,  42,  43,   0.0174532778, 1)
 traub_connect(this,  42,  44,   0.00988321907, 1)
 traub_connect(this,  42,  45,   0.00988321907, 1)
 traub_connect(this,  43,  46,   0.0174532778,  1.)
 traub_connect(this,  44,  45,   0.00689334805, 1)
 traub_connect(this,  44,  47,   0.00689334805,  1.)
 traub_connect(this,  45,  48,   0.00689334805,  1.)
 traub_connect(this,  46,  49,   0.0174532778,  1.)
 traub_connect(this,  47,  50,   0.00689334805,  1.)
 traub_connect(this,  50,  51,   0.00689334805,  1.)
 traub_connect(this,  51,  52,   0.00689334805,  1.)
 traub_connect(this,  52,  53,   0.00689334805,  1.)
 traub_connect(this,  54,  55,   0.026078893,  1.)
 traub_connect(this,  55,  56,   0.0185405311, 1)
 traub_connect(this,  55,  58,   0.0185405311, 1)
 traub_connect(this,  56,  57,   0.01570795,  1.)
 traub_connect(this,  56,  58,   0.01570795, 1)
 traub_connect(this,  58,  59,   0.01570795,  1.)
 access comp[1] // handy statement if want to start gui's from nrnmainmenu
 }
         proc geom() {
 // the "traub level" subsets are created and defined below
 top_level =  9
 objref level[top_level+1]
 for i=0,top_level { level[i] = new SectionList() }
  
 comp[ 1] { level[ 1].append() L=  20. diam = 2*  7.5 }
 comp[ 2] { level[ 2].append() L=  40. diam = 2*  1.06 }
 comp[ 3] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 4] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 5] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 6] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 7] { level[ 4].append() L=  40. diam = 2*  0.666666667 }
 comp[ 8] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 9] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 10] { level[ 5].append() L=  40. diam = 2*  0.666666667 }
 comp[ 11] { level[ 6].append() L=  40. diam = 2*  0.418972332 }
 comp[ 12] { level[ 7].append() L=  40. diam = 2*  0.418972332 }
 comp[ 13] { level[ 8].append() L=  40. diam = 2*  0.418972332 }
 comp[ 14] { level[ 9].append() L=  40. diam = 2*  0.418972332 }
 comp[ 15] { level[ 2].append() L=  40. diam = 2*  1.06 }
 comp[ 16] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 17] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 18] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 19] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 20] { level[ 4].append() L=  40. diam = 2*  0.666666667 }
 comp[ 21] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 22] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 23] { level[ 5].append() L=  40. diam = 2*  0.666666667 }
 comp[ 24] { level[ 6].append() L=  40. diam = 2*  0.418972332 }
 comp[ 25] { level[ 7].append() L=  40. diam = 2*  0.418972332 }
 comp[ 26] { level[ 8].append() L=  40. diam = 2*  0.418972332 }
 comp[ 27] { level[ 9].append() L=  40. diam = 2*  0.418972332 }
 comp[ 28] { level[ 2].append() L=  40. diam = 2*  1.06 }
 comp[ 29] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 30] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 31] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 32] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 33] { level[ 4].append() L=  40. diam = 2*  0.666666667 }
 comp[ 34] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 35] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 36] { level[ 5].append() L=  40. diam = 2*  0.666666667 }
 comp[ 37] { level[ 6].append() L=  40. diam = 2*  0.418972332 }
 comp[ 38] { level[ 7].append() L=  40. diam = 2*  0.418972332 }
 comp[ 39] { level[ 8].append() L=  40. diam = 2*  0.418972332 }
 comp[ 40] { level[ 9].append() L=  40. diam = 2*  0.418972332 }
 comp[ 41] { level[ 2].append() L=  40. diam = 2*  1.06 }
 comp[ 42] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 43] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 44] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 45] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 46] { level[ 4].append() L=  40. diam = 2*  0.666666667 }
 comp[ 47] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 48] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 49] { level[ 5].append() L=  40. diam = 2*  0.666666667 }
 comp[ 50] { level[ 6].append() L=  40. diam = 2*  0.418972332 }
 comp[ 51] { level[ 7].append() L=  40. diam = 2*  0.418972332 }
 comp[ 52] { level[ 8].append() L=  40. diam = 2*  0.418972332 }
 comp[ 53] { level[ 9].append() L=  40. diam = 2*  0.418972332 }
 comp[ 54] { level[ 0].append() L=  50. diam = 2*  0.7 }
 comp[ 55] { level[ 0].append() L=  50. diam = 2*  0.6 }
 comp[ 56] { level[ 0].append() L=  50. diam = 2*  0.5 }
 comp[ 57] { level[ 0].append() L=  50. diam = 2*  0.5 }
 comp[ 58] { level[ 0].append() L=  50. diam = 2*  0.5 }
 comp[ 59] { level[ 0].append() L=  50. diam = 2*  0.5 }
 } 
 // Here are some commonly used subsets of sections
         objref all
         proc subsets() { local i
           objref Soma, Dendrites, Soma_Dendrites, Axon
           objref all
           Soma = new SectionList()
           Dendrites = new SectionList()
           Soma_Dendrites = new SectionList()
           Axon = new SectionList()
           for i=1,top_level {
             forsec level[i] { // recall level 0 is axon, 1 is soma, higher are dends
               Soma_Dendrites.append()
                 if (i>1) {Dendrites.append()}
             }
           }
           forsec level[1] {
             Soma.append()
           }
           forsec level[0] { Axon.append() }
           all = new SectionList()
           for i=1, 59 comp[i] all.append()
          }
 
        proc shape() {
 
 /*      This section could contain statements like
 {pt3dclear() pt3dadd(-1,-1,0,1) pt3dadd(-1,-2,0,1)}
 These visual settings do not effect the electrical
 and chemical systems of equations.              */
 }
         proc biophys() {
 // 
 //       insert the mechanisms and assign max conductances
 // 
 forsec all { insert pas }   // g_pas has two values; soma-dend,axon


/* Conductance densities taken from Cunningham et al 2004 (TABLE 1, SUPPLEMENTARY MATERIAL), from which the conductance densities for this model were meant to be taken from (with FS firing properties)
Conductance type		Axon	Soma	Dendrites
gNa - transient			400	60	60 proximal, 10 distal
gK - delayed rectifier		400	100	100 proximal, 10 distal
gK - transient ("A")		1	1	1
gK - Ca- and V-dependent ("C")	0	25	25
gK - AHP [FS]			0	0	0
gK - AHP [LTS]			0	0.1	0.1
gK - "K2" [FS]			0	0	0
gK - "K2" [LTS]			0.5	0.5	0.5
gK - "M" [FS]			0	0	0
gK - "M" [LTS]			0	0.5	0.5
gCa - low-threshold [FS]	0	0	0				#### This is meant to be gCa(T)
gCa - low-threshold [LTS]	0	0.05	0.05 proximal, 2.0 distal	
gCa - high-threshold		0	0.1	0.1 proximal, 0.2 distal	#### This is meant to be gCa(L)
*/



 forsec level[ 0] {
       insert naf2
       gbar_naf2 =   0.4
       insert kdr_fs
       gbar_kdr_fs =   0.4
       insert ka
       gbar_ka =   0.001
       insert k2
       gbar_k2 =   0.0005
 }
 forsec level[ 1] {
       insert naf2
       gbar_naf2 =   0.06
       insert nap
       gbar_nap =   0.0006
       insert kdr_fs
       gbar_kdr_fs =   0.1
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0001
//       insert cat
//       gbar_cat =   0.0001
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.02
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   260000.
 }
 forsec level[ 2] {
       insert naf2
       gbar_naf2 =   0.06
       insert nap
       gbar_nap =   0.0006
       insert kdr_fs
       gbar_kdr_fs =   0.1
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0001
//       insert cat
//       gbar_cat =   0.0001
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 3] {
       insert naf2
       gbar_naf2 =   0.06
       insert nap
       gbar_nap =   0.0006
       insert kdr_fs
       gbar_kdr_fs =   0.1
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0001
//       insert cat
//       gbar_cat =   0.0001
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 4] {
       insert naf2
       gbar_naf2 =   0.01
       insert nap
       gbar_nap =   0.0001
       insert kdr_fs
       gbar_kdr_fs =   0.01
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0002
//       insert cat
//       gbar_cat =   0.0002
//       insert ar
//       gbar_ar =   0.0001
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 5] {
       insert naf2
       gbar_naf2 =   0.01
       insert nap
       gbar_nap =   0.0001
       insert kdr_fs
       gbar_kdr_fs =   0.01
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0002
//       insert cat
//       gbar_cat =   0.0002
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 6] {
       insert naf2
       gbar_naf2 =   0.01
       insert nap
       gbar_nap =   0.0001
       insert kdr_fs
       gbar_kdr_fs =   0.01
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0002
//       insert cat
//       gbar_cat =   0.0002
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 7] {
       insert naf2
       gbar_naf2 =   0.01
       insert nap
       gbar_nap =   0.0001
       insert kdr_fs
       gbar_kdr_fs =   0.01
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0002
//       insert cat
//       gbar_cat =   0.0002
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 8] {
       insert naf2
       gbar_naf2 =   0.01
       insert nap
       gbar_nap =   0.0001
       insert kdr_fs
       gbar_kdr_fs =   0.01
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0002
//       insert cat
//       gbar_cat =   0.0002
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 9] {
       insert naf2
       gbar_naf2 =   0.01
       insert nap
       gbar_nap =   0.0001
       insert kdr_fs
       gbar_kdr_fs =   0.01
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0002
//       insert cat
//       gbar_cat =   0.0002
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec all {
    cm =   1.  // assign global specific capac.
 }
 // 
 //  passive membrane resistance (leak) and axial resistance
 // 
 forsec Soma_Dendrites {
    g_pas =   4.E-05
    Ra =   200.
 }
 forsec Axon {
    g_pas =   0.001
    Ra =   100.
 }
 ceiling_cad = 1e6 //  nearly unlimited Ca concentration
 }  // end of biophys
 
 // Compartment Area: Dendritic.spines double area of
 // dend. membrane, which in Traubs method is equivalent to
 // only multiplying all dend. max conductances by two
 // (the area is doubled but the volume is const.)
 proc double_dend_cond() {
   spine_area_multiplier = 2
   forsec Dendrites {
        if (ismembrane("nap")) { gbar_nap *= spine_area_multiplier }
        if (ismembrane("napf")) { gbar_napf *= spine_area_multiplier }
        if (ismembrane("napf_tcr")) { gbar_napf_tcr *= spine_area_multiplier }
        if (ismembrane("naf2")) { gbar_naf2 *= spine_area_multiplier }
        if (ismembrane("naf2_tcr")) { gbar_naf2_tcr *= spine_area_multiplier }
        if (ismembrane("naf22")) { gbar_naf22 *= spine_area_multiplier }
        if (ismembrane("kc_fast")) { gbar_kc_fast *= spine_area_multiplier }
        if (ismembrane("kc_fast_fast")) { gbar_kc_fast_fast *= spine_area_multiplier }
        if (ismembrane("kahp")) { gbar_kahp *= spine_area_multiplier }
        if (ismembrane("kahp_slower")) { gbar_kahp_slower *= spine_area_multiplier }
        if (ismembrane("km")) { gbar_km *= spine_area_multiplier }
        if (ismembrane("kdr_fs")) { gbar_kdr_fs *= spine_area_multiplier }
        if (ismembrane("kdr_fs_fs")) { gbar_kdr_fs_fs *= spine_area_multiplier }
        if (ismembrane("ka")) { gbar_ka *= spine_area_multiplier }
        if (ismembrane("ka_ib")) { gbar_ka_ib *= spine_area_multiplier }
        if (ismembrane("k2")) { gbar_k2 *= spine_area_multiplier }
        if (ismembrane("cal")) { gbar_cal *= spine_area_multiplier }
        if (ismembrane("cat")) { gbar_cat *= spine_area_multiplier }
        if (ismembrane("cat_a")) { gbar_cat_a *= spine_area_multiplier }
        if (ismembrane("ar")) { gbar_ar *= spine_area_multiplier }
        if (ismembrane("pas")) { g_pas *= spine_area_multiplier }
        cm = cm * spine_area_multiplier
   }
 }
 // double_dend_cond()  // run for cells w/ spines
 
        proc position() { local i
 // comp switched to comp[1] since 0 deleted
         comp[1] for i = 0, n3d()-1 {
     pt3dchange(i, $1-x+x3d(i), \
      $2-y+y3d(i), $3-z+z3d(i),diam3d(i))
        }
         x=$1 y=$2 z=$3
        }
         proc connect2target() { 
  // $o1 targ point process, $o2 returned NetCon
           comp[presyn_comp] $o2 = new NetCon(&v(1),$o1)
	$o2.threshold = 0
         }
         objref syn_
         proc synapses() {
         // place for each compartment that has input
         // statements like 
 //comp[3] syn_=new AlphaSynKinT(1) synlist.append(syn_)
 //comp[4] syn_=new NMDA(1) synlist.append(syn_)
         }
 
 // is not an artificial cell:
      func is_art() { return 0 }
 
 
 
         proc more_adjustments() {
 forsec all {
        if (ismembrane("naf2")) {fastNa_shift_naf2=-3.5}
    // global reversal potentials
    ek =  -100.
    e_pas =  -65.
    ena =   50.
    vca =   125.
    forsec all if (ismembrane("ar")) erev_ar =  -40.
    e_gaba_a =  -75.
 }
     // more extended initializations
     // Note: the following currents are not
     // present in fast spiking and LTS interneurons
 // Would be slightly more efficient to not include them
     forsec all {
         if (ismembrane("nap")) {gbar_nap = 0.0}
         if (ismembrane("k2")) {gbar_k2 = 0.0}
         if (ismembrane("km")) {gbar_km = 0.0}
         if (ismembrane("kahp")) {gbar_kahp = 0.0}
         if (ismembrane("kahp_slower")) {gbar_kahp_slower = 0.0}
         if (ismembrane("cat")) {gbar_cat = 0.0}
         if (ismembrane("ar")) {gbar_ar = 0.0}
    }
 }
  endtemplate supaxax