c Cell types: superficial pyramidal RS; superficial pyramidal FRB;
c superficial basket; superficial axoaxonic; superficial LTS;
c spiny stellate; tufted deep IB; tufted deep RS; nontufted deep RS;
c deep basket; deep axoaxonic; deep LTS; thalamocortical relay (TCR);
c nucleus reticularis thalami (nRT).
PROGRAM GROUCHO
! max number of cells of any one type should be 1000; otherwise problems with broadcasting
! axonal potentials (see position code below
PARAMETER (num_suppyrRS = 1000, num_suppyrFRB = 50,
& num_supbask = 90, num_supaxax = 90, num_supLTS = 90,
! & num_spinstell = 240, num_tuftIB = 500, num_tuftRS = 500,
& num_spinstell = 240, num_tuftIB = 800, num_tuftRS = 200, ! Diego unsure how many tuftRS there are
& num_nontuftRS = 500, num_deepbask = 100,
& num_deepaxax = 100, num_deepLTS = 100, num_TCR = 100,
& num_nRT = 100)
PARAMETER (numcomp_suppyrRS = 74,
& numcomp_suppyrFRB = 74,
& numcomp_supbask = 59,
& numcomp_supaxax = 59,
& numcomp_supLTS = 59,
& numcomp_spinstell = 59,
& numcomp_tuftIB = 61,
& numcomp_tuftRS = 61,
& numcomp_nontuftRS = 50,
& numcomp_deepbask = 59,
& numcomp_deepaxax = 59,
& numcomp_deepLTS = 59,
& numcomp_TCR =137,
& numcomp_nRT = 59)
PARAMETER (num_suppyrRS_to_suppyrRS = 50,
& num_suppyrRS_to_suppyrFRB = 50,
& num_suppyrRS_to_supbask = 90, ! note
& num_suppyrRS_to_supaxax = 90, ! note
& num_suppyrRS_to_supLTS = 90, ! note
! & num_suppyrRS_to_spinstell = 30,
& num_suppyrRS_to_spinstell = 3, ! make small, per Thomson & Bannister
! & num_suppyrRS_to_tuftIB = 30,
& num_suppyrRS_to_tuftIB = 60, ! big per Thomson & Bannister
! & num_suppyrRS_to_tuftRS = 30,
& num_suppyrRS_to_tuftRS = 60, ! big per Thomson & Bannister
& num_suppyrRS_to_deepbask = 30,
& num_suppyrRS_to_deepaxax = 30,
& num_suppyrRS_to_deepLTS = 30,
! & num_suppyrRS_to_nontuftRS = 30,
& num_suppyrRS_to_nontuftRS = 3, ! small per Thomson & Bannister
& num_suppyrFRB_to_suppyrRS = 5,
& num_suppyrFRB_to_suppyrFRB= 5,
& num_suppyrFRB_to_supbask = 5,
& num_suppyrFRB_to_supaxax = 5,
& num_suppyrFRB_to_supLTS = 5,
! & num_suppyrFRB_to_spinstell= 3,
& num_suppyrFRB_to_spinstell= 1, ! make small, per Thomson & Bannister
& num_suppyrFRB_to_tuftIB = 3,
& num_suppyrFRB_to_tuftRS = 3,
& num_suppyrFRB_to_deepbask = 3,
& num_suppyrFRB_to_deepaxax = 3,
& num_suppyrFRB_to_deepLTS = 3,
! & num_suppyrFRB_to_nontuftRS= 3)
& num_suppyrFRB_to_nontuftRS= 1) ! small per Thomson & Bannister
PARAMETER
& (num_supbask_to_suppyrRS = 20,
& num_supbask_to_suppyrFRB = 20,
& num_supbask_to_supbask = 20,
& num_supbask_to_supaxax = 20,
& num_supbask_to_supLTS = 20,
& num_supbask_to_spinstell = 20,
& num_supaxax_to_suppyrRS = 20, ! note
& num_supaxax_to_suppyrFRB = 20, ! note
& num_supaxax_to_spinstell = 5,
& num_supaxax_to_tuftIB = 5,
& num_supaxax_to_tuftRS = 5,
& num_supaxax_to_nontuftRS = 5,
& num_supLTS_to_suppyrRS = 20,
& num_supLTS_to_suppyrFRB = 20,
& num_supLTS_to_supbask = 20,
& num_supLTS_to_supaxax = 20,
& num_supLTS_to_supLTS = 20,
& num_supLTS_to_spinstell = 20,
& num_supLTS_to_tuftIB = 20)
PARAMETER
& (num_supLTS_to_tuftRS = 20,
& num_supLTS_to_deepbask = 20,
& num_supLTS_to_deepaxax = 20,
& num_supLTS_to_deepLTS = 20,
& num_supLTS_to_nontuftRS = 20,
& num_spinstell_to_suppyrRS = 20,
& num_spinstell_to_suppyrFRB= 20,
& num_spinstell_to_supbask = 20,
& num_spinstell_to_supaxax = 20,
& num_spinstell_to_supLTS = 20,
& num_spinstell_to_spinstell= 30,
& num_spinstell_to_tuftIB = 20,
& num_spinstell_to_tuftRS = 20,
& num_spinstell_to_deepbask = 20,
& num_spinstell_to_deepaxax = 20,
& num_spinstell_to_deepLTS = 20,
& num_spinstell_to_nontuftRS= 20,
! & num_tuftIB_to_suppyrRS = 20,
& num_tuftIB_to_suppyrRS = 2, ! small per Thomson & Bannister
! & num_tuftIB_to_suppyrFRB = 20,
& num_tuftIB_to_suppyrFRB = 2, ! small per Thomson & Bannister
& num_tuftIB_to_supbask = 20)
PARAMETER
& (num_tuftIB_to_supaxax = 20,
& num_tuftIB_to_supLTS = 20,
& num_tuftIB_to_spinstell = 20,
& num_tuftIB_to_tuftIB = 50,
& num_tuftIB_to_tuftRS = 20,
& num_tuftIB_to_deepbask = 20,
& num_tuftIB_to_deepaxax = 20,
& num_tuftIB_to_deepLTS = 20,
& num_tuftIB_to_nontuftRS = 20,
! & num_tuftRS_to_suppyrRS = 20,
& num_tuftRS_to_suppyrRS = 2, ! small per Thomson & Bannister
! & num_tuftRS_to_suppyrFRB = 20,
& num_tuftRS_to_suppyrFRB = 2, ! small per Thomson & Bannister
& num_tuftRS_to_supbask = 20,
& num_tuftRS_to_supaxax = 20,
& num_tuftRS_to_supLTS = 20,
& num_tuftRS_to_spinstell = 20,
& num_tuftRS_to_tuftIB = 20,
& num_tuftRS_to_tuftRS = 10,
& num_tuftRS_to_deepbask = 20,
& num_tuftRS_to_deepaxax = 20,
& num_tuftRS_to_deepLTS = 20,
& num_tuftRS_to_nontuftRS = 20)
PARAMETER
& (num_deepbask_to_spinstell = 20,
& num_deepbask_to_tuftIB = 20,
& num_deepbask_to_tuftRS = 20,
& num_deepbask_to_deepbask = 20,
& num_deepbask_to_deepaxax = 20,
& num_deepbask_to_deepLTS = 20,
& num_deepbask_to_nontuftRS = 20,
& num_deepaxax_to_suppyrRS = 5,
& num_deepaxax_to_suppyrFRB = 5,
& num_deepaxax_to_spinstell = 5,
& num_deepaxax_to_tuftIB = 5,
& num_deepaxax_to_tuftRS = 5,
& num_deepaxax_to_nontuftRS = 5,
& num_deepLTS_to_suppyrRS = 10)
PARAMETER
& (num_deepLTS_to_suppyrFRB = 10,
& num_deepLTS_to_supbask = 10,
& num_deepLTS_to_supaxax = 10,
& num_deepLTS_to_supLTS = 10,
& num_deepLTS_to_spinstell = 20,
& num_deepLTS_to_tuftIB = 20,
& num_deepLTS_to_tuftRS = 20,
& num_deepLTS_to_deepbask = 20,
& num_deepLTS_to_deepaxax = 20,
& num_deepLTS_to_deepLTS = 20,
& num_deepLTS_to_nontuftRS = 20,
& num_TCR_to_suppyrRS = 10,
& num_TCR_to_suppyrFRB = 10,
& num_TCR_to_supbask = 10,
& num_TCR_to_supaxax = 10,
! & num_TCR_to_spinstell = 10,
& num_TCR_to_spinstell = 20,
& num_TCR_to_tuftIB = 10,
& num_TCR_to_tuftRS = 10,
! & num_TCR_to_deepbask = 10,
& num_TCR_to_deepbask = 20,
& num_TCR_to_deepaxax = 10,
& num_TCR_to_nRT = 25, ! note
& num_TCR_to_nontuftRS = 10,
& num_nRT_to_TCR = 15, ! note
& num_nRT_to_nRT = 10)
PARAMETER
& (num_nontuftRS_to_suppyrRS = 10,
& num_nontuftRS_to_suppyrFRB= 10,
& num_nontuftRS_to_supbask = 10,
& num_nontuftRS_to_supaxax = 10,
& num_nontuftRS_to_supLTS = 10,
& num_nontuftRS_to_spinstell= 10,
& num_nontuftRS_to_tuftIB = 10,
& num_nontuftRS_to_tuftRS = 10,
& num_nontuftRS_to_deepbask = 10,
& num_nontuftRS_to_deepaxax = 10,
& num_nontuftRS_to_deepLTS = 10,
& num_nontuftRS_to_TCR = 20,
& num_nontuftRS_to_nRT = 20,
& num_nontuftRS_to_nontuftRS= 20)
c Begin definition of number of compartments that can be
c contacted for each type of synaptic connection.
PARAMETER (ncompallow_suppyrRS_to_suppyrRS = 36,
& ncompallow_suppyrRS_to_suppyrFRB = 36,
& ncompallow_suppyrRS_to_supbask = 24,
& ncompallow_suppyrRS_to_supaxax = 24,
& ncompallow_suppyrRS_to_supLTS = 24,
& ncompallow_suppyrRS_to_spinstell = 24,
& ncompallow_suppyrRS_to_tuftIB = 8,
& ncompallow_suppyrRS_to_tuftRS = 8,
& ncompallow_suppyrRS_to_deepbask = 24,
& ncompallow_suppyrRS_to_deepaxax = 24,
& ncompallow_suppyrRS_to_deepLTS = 24,
& ncompallow_suppyrRS_to_nontuftRS = 7)
PARAMETER (ncompallow_suppyrFRB_to_suppyrRS = 36,
& ncompallow_suppyrFRB_to_suppyrFRB = 36,
& ncompallow_suppyrFRB_to_supbask = 24,
& ncompallow_suppyrFRB_to_supaxax = 24,
& ncompallow_suppyrFRB_to_supLTS = 24,
& ncompallow_suppyrFRB_to_spinstell = 24,
& ncompallow_suppyrFRB_to_tuftIB = 8,
& ncompallow_suppyrFRB_to_tuftRS = 8,
& ncompallow_suppyrFRB_to_deepbask = 24,
& ncompallow_suppyrFRB_to_deepaxax = 24,
& ncompallow_suppyrFRB_to_deepLTS = 24,
& ncompallow_suppyrFRB_to_nontuftRS = 7)
PARAMETER (ncompallow_supbask_to_suppyrRS = 11,
& ncompallow_supbask_to_suppyrFRB = 11,
& ncompallow_supbask_to_supbask = 24,
& ncompallow_supbask_to_supaxax = 24,
& ncompallow_supbask_to_supLTS = 24,
& ncompallow_supbask_to_spinstell = 5)
PARAMETER (ncompallow_supLTS_to_suppyrRS = 53,
& ncompallow_supLTS_to_suppyrFRB = 53,
& ncompallow_supLTS_to_supbask = 40,
& ncompallow_supLTS_to_supaxax = 40,
& ncompallow_supLTS_to_supLTS = 40,
& ncompallow_supLTS_to_spinstell = 40,
& ncompallow_supLTS_to_tuftIB = 40,
& ncompallow_supLTS_to_tuftRS = 40,
& ncompallow_supLTS_to_deepbask = 20,
& ncompallow_supLTS_to_deepaxax = 20,
& ncompallow_supLTS_to_deepLTS = 20,
& ncompallow_supLTS_to_nontuftRS = 29)
PARAMETER (ncompallow_spinstell_to_suppyrRS = 24,
& ncompallow_spinstell_to_suppyrFRB = 24,
& ncompallow_spinstell_to_supbask = 24,
& ncompallow_spinstell_to_supaxax = 24,
& ncompallow_spinstell_to_supLTS = 24,
& ncompallow_spinstell_to_spinstell = 24,
& ncompallow_spinstell_to_tuftIB = 12,
& ncompallow_spinstell_to_tuftRS = 12,
& ncompallow_spinstell_to_deepbask = 24,
& ncompallow_spinstell_to_deepaxax = 24,
& ncompallow_spinstell_to_deepLTS = 24,
& ncompallow_spinstell_to_nontuftRS = 5)
PARAMETER (ncompallow_tuftIB_to_suppyrRS = 13,
& ncompallow_tuftIB_to_suppyrFRB = 13,
& ncompallow_tuftIB_to_supbask = 24,
& ncompallow_tuftIB_to_supaxax = 24,
& ncompallow_tuftIB_to_supLTS = 24,
& ncompallow_tuftIB_to_spinstell = 24,
& ncompallow_tuftIB_to_tuftIB = 46,
& ncompallow_tuftIB_to_tuftRS = 46,
& ncompallow_tuftIB_to_deepbask = 24,
& ncompallow_tuftIB_to_deepaxax = 24,
& ncompallow_tuftIB_to_deepLTS = 24,
& ncompallow_tuftIB_to_nontuftRS = 43)
PARAMETER (ncompallow_tuftRS_to_suppyrRS = 13,
& ncompallow_tuftRS_to_suppyrFRB = 13,
& ncompallow_tuftRS_to_supbask = 24,
& ncompallow_tuftRS_to_supaxax = 24,
& ncompallow_tuftRS_to_supLTS = 24,
& ncompallow_tuftRS_to_spinstell = 24,
& ncompallow_tuftRS_to_tuftIB = 46,
& ncompallow_tuftRS_to_tuftRS = 46,
& ncompallow_tuftRS_to_deepbask = 24,
& ncompallow_tuftRS_to_deepaxax = 24,
& ncompallow_tuftRS_to_deepLTS = 24,
& ncompallow_tuftRS_to_nontuftRS = 43)
PARAMETER (ncompallow_deepbask_to_spinstell = 5,
& ncompallow_deepbask_to_tuftIB = 8,
& ncompallow_deepbask_to_tuftRS = 8,
& ncompallow_deepbask_to_deepbask = 24,
& ncompallow_deepbask_to_deepaxax = 24,
& ncompallow_deepbask_to_deepLTS = 24,
& ncompallow_deepbask_to_nontuftRS = 8)
PARAMETER (ncompallow_deepLTS_to_suppyrRS = 53,
& ncompallow_deepLTS_to_suppyrFRB = 53,
& ncompallow_deepLTS_to_supbask = 20,
& ncompallow_deepLTS_to_supaxax = 20,
& ncompallow_deepLTS_to_supLTS = 20,
& ncompallow_deepLTS_to_spinstell = 40,
& ncompallow_deepLTS_to_tuftIB = 40,
& ncompallow_deepLTS_to_tuftRS = 40,
& ncompallow_deepLTS_to_deepbask = 40,
& ncompallow_deepLTS_to_deepaxax = 40,
& ncompallow_deepLTS_to_deepLTS = 40,
& ncompallow_deepLTS_to_nontuftRS = 29)
PARAMETER (ncompallow_TCR_to_suppyrRS = 24,
& ncompallow_TCR_to_suppyrFRB = 24,
& ncompallow_TCR_to_supbask = 12,
& ncompallow_TCR_to_supaxax = 12,
& ncompallow_TCR_to_spinstell = 52,
& ncompallow_TCR_to_tuftIB = 9,
& ncompallow_TCR_to_tuftRS = 9,
& ncompallow_TCR_to_deepbask = 12,
& ncompallow_TCR_to_deepaxax = 12,
& ncompallow_TCR_to_nRT = 12,
& ncompallow_TCR_to_nontuftRS = 5)
PARAMETER (ncompallow_nRT_to_TCR = 11,
& ncompallow_nRT_to_nRT = 53)
PARAMETER (ncompallow_nontuftRS_to_suppyrRS = 4,
& ncompallow_nontuftRS_to_suppyrFRB = 4,
& ncompallow_nontuftRS_to_supbask = 24,
& ncompallow_nontuftRS_to_supaxax = 24,
& ncompallow_nontuftRS_to_supLTS = 24,
& ncompallow_nontuftRS_to_spinstell = 24,
& ncompallow_nontuftRS_to_tuftIB = 46,
& ncompallow_nontuftRS_to_tuftRS = 46,
& ncompallow_nontuftRS_to_deepbask = 24,
& ncompallow_nontuftRS_to_deepaxax = 24,
& ncompallow_nontuftRS_to_deepLTS = 24,
& ncompallow_nontuftRS_to_TCR = 90,
& ncompallow_nontuftRS_to_nRT = 12,
& ncompallow_nontuftRS_to_nontuftRS = 43)
c End definition of number of allowed compartments that
c can be contacted for each sort of connection
c Note that gj form only between cells of a given type,
c except suppyrRS/suppyrFRB & tuftIB/tuftRS
c gj/cell = 2 x total gj / # cells
c for proportions, see /home/traub/supergj/tests.f
integer, parameter :: totaxgj_suppyrRS = 722
integer, parameter :: totaxgj_suppyrFRB = 4
integer, parameter :: totaxgj_suppyr = 74
! totaxgj_suppyr = number of "mixed" gj between RS suppyr
! (1st col. of table) and FRB suppyr (3rd col. of table) cells
integer, parameter :: totSDgj_supbask = 200
integer, parameter :: totSDgj_supaxax = 0
integer, parameter :: totSDgj_supLTS = 200
integer, parameter :: totaxgj_spinstell = 240
integer, parameter :: totaxgj_tuftIB = 350
integer, parameter :: totaxgj_tuftRS = 350
! integer, parameter :: totaxgj_tuft = 350
integer, parameter :: totaxgj_tuft = 10 ! decr. antidr. bursts in IB
! totaxgj_tuft for mixed gj between tuftIB (1st) and tuftRS (next)
integer, parameter :: totaxgj_nontuftRS = 500
integer, parameter :: totSDgj_deepbask = 250
integer, parameter :: totSDgj_deepaxax = 0
integer, parameter :: totSDgj_deepLTS = 250
integer, parameter :: totaxgj_TCR = 100
integer, parameter :: totSDgj_nRT = 250
c Note: no gj between axoaxonic cells.
c Define number of compartments on a cell where a gj might form
integer, parameter :: num_axgjcompallow_suppyrRS = 1
integer, parameter :: num_axgjcompallow_suppyrFRB= 1
integer, parameter :: num_SDgjcompallow_supbask = 8
integer, parameter :: num_SDgjcompallow_supLTS = 8
integer, parameter :: num_axgjcompallow_spinstell= 1
integer, parameter :: num_axgjcompallow_tuftIB = 1
integer, parameter :: num_axgjcompallow_tuftRS = 1
integer, parameter :: num_axgjcompallow_nontuftRS= 1
integer, parameter :: num_SDgjcompallow_deepbask = 8
integer, parameter :: num_SDgjcompallow_deepLTS = 8
integer, parameter :: num_axgjcompallow_TCR = 1
integer, parameter :: num_SDgjcompallow_nRT = 8
c Define gap junction conductances.
double precision, parameter :: gapcon_suppyrRS = 3.d-3
! double precision, parameter :: gapcon_suppyrRS = 0.d-3 ! to see if superf. lay. can follow 40 Hz
double precision, parameter :: gapcon_suppyrFRB = 3.d-3
! double precision, parameter :: gapcon_suppyrFRB = 0.d-3 ! to see if superf. lay. can follow 40 Hz
double precision, parameter :: gapcon_supbask = 1.d-3
double precision, parameter :: gapcon_supaxax = 0.d-3
double precision, parameter :: gapcon_supLTS = 1.d-3
double precision, parameter :: gapcon_spinstell = 3.d-3
! double precision, parameter :: gapcon_spinstell = 0.d-3 ! to see if ctx follows 40 Hz from thal.
double precision, parameter :: gapcon_tuftIB = 4.d-3
! double precision, parameter :: gapcon_tuftIB = 0.d-3 ! to decr. antidr. bursting
double precision, parameter :: gapcon_tuftRS = 4.d-3
! double precision, parameter :: gapcon_tuftRS = 0.d-3 ! now follow 40 Hz?
double precision, parameter :: gapcon_nontuftRS = 4.d-3
! double precision, parameter :: gapcon_nontuftRS = 0.d-3 ! to abolish VFO in lay. 6
double precision, parameter :: gapcon_deepbask = 1.d-3
double precision, parameter :: gapcon_deepaxax = 0.d-3
double precision, parameter :: gapcon_deepLTS = 1.d-3
! double precision, parameter :: gapcon_TCR = 3.d-3
double precision, parameter :: gapcon_TCR = 0.d-3
double precision, parameter :: gapcon_nRT = 1.d-3
c Assorted parameters
double precision, parameter :: dt = 0.002d0
double precision, parameter :: Mg = 1.50
! Castro-Alamancos J Physiol, disinhib. neocortex in vitro, uses
! Mg = 1.3
double precision, parameter :: NMDA_saturation_fact
! & = 5.d0
& = 80.d0
c NMDA conductance developed on one postsynaptic compartment,
c from one type of presynaptic cell, can be at most this
c factor x unitary conductance
c UNFORTUNATELY, with this scheme,if one NMDA cond. set to 0
c on a cell type, all NMDA conductances will be forced to 0
c on that cell type...
double precision, parameter :: thal_cort_delay = 1.d0
double precision, parameter :: cort_thal_delay = 5.d0
integer, parameter :: how_often = 50
! how_often defines how many time steps between synaptic conductance
! updates, and between broadcastings of axonal voltages.
double precision, parameter :: axon_refrac_time = 1.5d0
c For these ectopic rate parameters, assume noisepe checked
c every 200 time steps = 0.4 ms = 1./2.5 ms
double precision, parameter :: noisepe_suppyrRS =
! & 1.d0 / (2.5d0 * 1000.d0) ! USUAL
& 1.d0 / (2.5d0 * 10000.d0)
double precision, parameter :: noisepe_suppyrFRB =
! & 1.d0 / (2.5d0 * 1000.d0) ! USUAL
& 1.d0 / (2.5d0 * 10000.d0)
double precision, parameter :: noisepe_spinstell =
& 1.d0 / (2.5d0 * 1000.d0)
double precision, parameter :: noisepe_tuftIB =
& 1.d0 / (2.5d0 * 1000.d0)
double precision, parameter :: noisepe_tuftRS =
& 1.d0 / (2.5d0 * 1000.d0)
double precision, parameter :: noisepe_nontuftRS =
& 1.d0 / (2.5d0 * 1000.d0)
double precision, parameter :: noisepe_TCR =
& 1.d0 / (2.5d0 * 1000.d0)
c Synaptic conductance time constants.
real*8, parameter :: tauAMPA_suppyrRS_to_suppyrRS=2.d0
real*8, parameter :: tauNMDA_suppyrRS_to_suppyrRS=130.5d0
real*8, parameter :: tauAMPA_suppyrRS_to_suppyrFRB=2.d0
real*8, parameter :: tauNMDA_suppyrRS_to_suppyrFRB=130.d0
real*8, parameter :: tauAMPA_suppyrRS_to_supbask =.8d0
real*8, parameter :: tauNMDA_suppyrRS_to_supbask =100.d0
real*8, parameter :: tauAMPA_suppyrRS_to_supaxax =.8d0
real*8, parameter :: tauNMDA_suppyrRS_to_supaxax =100.d0
real*8, parameter :: tauAMPA_suppyrRS_to_supLTS =1.d0
real*8, parameter :: tauNMDA_suppyrRS_to_supLTS =100.d0
real*8, parameter :: tauAMPA_suppyrRS_to_spinstell=2.d0
real*8, parameter :: tauNMDA_suppyrRS_to_spinstell=130.d0
real*8, parameter :: tauAMPA_suppyrRS_to_tuftIB =2.d0
real*8, parameter :: tauNMDA_suppyrRS_to_tuftIB =130.d0
real*8, parameter :: tauAMPA_suppyrRS_to_tuftRS =2.d0
real*8, parameter :: tauNMDA_suppyrRS_to_tuftRS =130.d0
real*8, parameter :: tauAMPA_suppyrRS_to_deepbask =.8d0
real*8, parameter :: tauNMDA_suppyrRS_to_deepbask =100.d0
real*8, parameter :: tauAMPA_suppyrRS_to_deepaxax =.8d0
real*8, parameter :: tauNMDA_suppyrRS_to_deepaxax =100.d0
real*8, parameter :: tauAMPA_suppyrRS_to_deepLTS =1.d0
real*8, parameter :: tauNMDA_suppyrRS_to_deepLTS =100.d0
real*8, parameter :: tauAMPA_suppyrRS_to_nontuftRS=2.d0
real*8, parameter :: tauNMDA_suppyrRS_to_nontuftRS=130.d0
real*8, parameter :: tauAMPA_suppyrFRB_to_suppyrRS=2.d0
real*8, parameter :: tauNMDA_suppyrFRB_to_suppyrRS=130.d0
real*8, parameter :: tauAMPA_suppyrFRB_to_suppyrFRB=2.d0
real*8, parameter :: tauNMDA_suppyrFRB_to_suppyrFRB=130.d0
real*8, parameter :: tauAMPA_suppyrFRB_to_supbask =.8d0
real*8, parameter :: tauNMDA_suppyrFRB_to_supbask =100.d0
real*8, parameter :: tauAMPA_suppyrFRB_to_supaxax =.8d0
real*8, parameter :: tauNMDA_suppyrFRB_to_supaxax =100.d0
real*8, parameter :: tauAMPA_suppyrFRB_to_supLTS =1.d0
real*8, parameter :: tauNMDA_suppyrFRB_to_supLTS =100.d0
real*8, parameter :: tauAMPA_suppyrFRB_to_spinstell=2.d0
real*8, parameter :: tauNMDA_suppyrFRB_to_spinstell=130.d0
real*8, parameter :: tauAMPA_suppyrFRB_to_tuftIB =2.d0
real*8, parameter :: tauNMDA_suppyrFRB_to_tuftIB =130.d0
real*8, parameter :: tauAMPA_suppyrFRB_to_tuftRS =2.d0
real*8, parameter :: tauNMDA_suppyrFRB_to_tuftRS =130.d0
real*8, parameter :: tauAMPA_suppyrFRB_to_deepbask =.8d0
real*8, parameter :: tauNMDA_suppyrFRB_to_deepbask =100.d0
real*8, parameter :: tauAMPA_suppyrFRB_to_deepaxax =.8d0
real*8, parameter :: tauNMDA_suppyrFRB_to_deepaxax =100.d0
real*8, parameter :: tauAMPA_suppyrFRB_to_deepLTS =1.d0
real*8, parameter :: tauNMDA_suppyrFRB_to_deepLTS =100.d0
real*8, parameter :: tauAMPA_suppyrFRB_to_nontuftRS=2.d0
real*8, parameter :: tauNMDA_suppyrFRB_to_nontuftRS=130.d0
real*8, parameter :: tauGABA_supbask_to_suppyrRS =6.d0
real*8, parameter :: tauGABA_supbask_to_suppyrFRB =6.d0
real*8, parameter :: tauGABA_supbask_to_supbask =3.d0
real*8, parameter :: tauGABA_supbask_to_supaxax =3.d0
real*8, parameter :: tauGABA_supbask_to_supLTS =3.d0
real*8, parameter :: tauGABA_supbask_to_spinstell =6.d0
real*8, parameter :: tauGABA_supaxax_to_suppyrRS =6.d0
real*8, parameter :: tauGABA_supaxax_to_suppyrFRB =6.d0
real*8, parameter :: tauGABA_supaxax_to_spinstell =6.d0
real*8, parameter :: tauGABA_supaxax_to_tuftIB =6.d0
real*8, parameter :: tauGABA_supaxax_to_tuftRS =6.d0
real*8, parameter :: tauGABA_supaxax_to_nontuftRS =6.d0
real*8, parameter :: tauGABA_supLTS_to_suppyrRS =20.d0
real*8, parameter :: tauGABA_supLTS_to_suppyrFRB =20.d0
real*8, parameter :: tauGABA_supLTS_to_supbask =20.d0
real*8, parameter :: tauGABA_supLTS_to_supaxax =20.d0
real*8, parameter :: tauGABA_supLTS_to_supLTS =20.d0
real*8, parameter :: tauGABA_supLTS_to_spinstell =20.d0
real*8, parameter :: tauGABA_supLTS_to_tuftIB =20.d0
real*8, parameter :: tauGABA_supLTS_to_tuftRS =20.d0
real*8, parameter :: tauGABA_supLTS_to_deepbask =20.d0
real*8, parameter :: tauGABA_supLTS_to_deepaxax =20.d0
real*8, parameter :: tauGABA_supLTS_to_deepLTS =20.d0
real*8, parameter :: tauGABA_supLTS_to_nontuftRS =20.d0
real*8, parameter :: tauAMPA_spinstell_to_suppyrRS =2.d0
real*8, parameter :: tauNMDA_spinstell_to_suppyrRS =130.d0
real*8, parameter :: tauAMPA_spinstell_to_suppyrFRB=2.d0
real*8, parameter :: tauNMDA_spinstell_to_suppyrFRB=130.d0
real*8, parameter :: tauAMPA_spinstell_to_supbask =.8d0
real*8, parameter :: tauNMDA_spinstell_to_supbask =100.d0
real*8, parameter :: tauAMPA_spinstell_to_supaxax =.8d0
real*8, parameter :: tauNMDA_spinstell_to_supaxax =100.d0
real*8, parameter :: tauAMPA_spinstell_to_supLTS =1.d0
real*8, parameter :: tauNMDA_spinstell_to_supLTS =100.d0
real*8, parameter :: tauAMPA_spinstell_to_spinstell=2.d0
real*8, parameter :: tauNMDA_spinstell_to_spinstell=130.d0
real*8, parameter :: tauAMPA_spinstell_to_tuftIB =2.d0
real*8, parameter :: tauNMDA_spinstell_to_tuftIB =130.d0
real*8, parameter :: tauAMPA_spinstell_to_tuftRS =2.d0
real*8, parameter :: tauNMDA_spinstell_to_tuftRS =130.d0
real*8, parameter :: tauAMPA_spinstell_to_deepbask =.8d0
real*8, parameter :: tauNMDA_spinstell_to_deepbask =100.d0
real*8, parameter :: tauAMPA_spinstell_to_deepaxax =.8d0
real*8, parameter :: tauNMDA_spinstell_to_deepaxax =100.d0
real*8, parameter :: tauAMPA_spinstell_to_deepLTS =1.d0
real*8, parameter :: tauNMDA_spinstell_to_deepLTS =100.d0
real*8, parameter :: tauAMPA_spinstell_to_nontuftRS=2.d0
real*8, parameter :: tauNMDA_spinstell_to_nontuftRS=130.d0
real*8, parameter :: tauAMPA_tuftIB_to_suppyrRS =2.d0
real*8, parameter :: tauNMDA_tuftIB_to_suppyrRS =130.d0
real*8, parameter :: tauAMPA_tuftIB_to_suppyrFRB =2.d0
real*8, parameter :: tauNMDA_tuftIB_to_suppyrFRB =130.d0
real*8, parameter :: tauAMPA_tuftIB_to_supbask =.8d0
real*8, parameter :: tauNMDA_tuftIB_to_supbask =100.d0
real*8, parameter :: tauAMPA_tuftIB_to_supaxax =.8d0
real*8, parameter :: tauNMDA_tuftIB_to_supaxax =100.d0
real*8, parameter :: tauAMPA_tuftIB_to_supLTS =1.d0
real*8, parameter :: tauNMDA_tuftIB_to_supLTS =100.d0
real*8, parameter :: tauAMPA_tuftIB_to_spinstell =2.d0
real*8, parameter :: tauNMDA_tuftIB_to_spinstell =130.d0
real*8, parameter :: tauAMPA_tuftIB_to_tuftIB =2.d0
real*8, parameter :: tauNMDA_tuftIB_to_tuftIB =130.d0
real*8, parameter :: tauAMPA_tuftIB_to_tuftRS =2.0d0
real*8, parameter :: tauNMDA_tuftIB_to_tuftRS =130.d0
real*8, parameter :: tauAMPA_tuftIB_to_deepbask =.8d0
real*8, parameter :: tauNMDA_tuftIB_to_deepbask =100.d0
real*8, parameter :: tauAMPA_tuftIB_to_deepaxax =.8d0
real*8, parameter :: tauNMDA_tuftIB_to_deepaxax =100.d0
real*8, parameter :: tauAMPA_tuftIB_to_deepLTS =1.d0
real*8, parameter :: tauNMDA_tuftIB_to_deepLTS =100.d0
real*8, parameter :: tauAMPA_tuftIB_to_nontuftRS =2.0d0
real*8, parameter :: tauNMDA_tuftIB_to_nontuftRS =130.d0
real*8, parameter :: tauAMPA_tuftRS_to_suppyrRS =2.d0
real*8, parameter :: tauNMDA_tuftRS_to_suppyrRS =130.d0
real*8, parameter :: tauAMPA_tuftRS_to_suppyrFRB =2.d0
real*8, parameter :: tauNMDA_tuftRS_to_suppyrFRB =130.d0
real*8, parameter :: tauAMPA_tuftRS_to_supbask =.8d0
real*8, parameter :: tauNMDA_tuftRS_to_supbask =100.d0
real*8, parameter :: tauAMPA_tuftRS_to_supaxax =.8d0
real*8, parameter :: tauNMDA_tuftRS_to_supaxax =100.d0
real*8, parameter :: tauAMPA_tuftRS_to_supLTS =1.d0
real*8, parameter :: tauNMDA_tuftRS_to_supLTS =100.d0
real*8, parameter :: tauAMPA_tuftRS_to_spinstell =2.d0
real*8, parameter :: tauNMDA_tuftRS_to_spinstell =130.d0
real*8, parameter :: tauAMPA_tuftRS_to_tuftIB =2.d0
real*8, parameter :: tauNMDA_tuftRS_to_tuftIB =130.d0
real*8, parameter :: tauAMPA_tuftRS_to_tuftRS =2.d0
real*8, parameter :: tauNMDA_tuftRS_to_tuftRS =130.d0
real*8, parameter :: tauAMPA_tuftRS_to_deepbask =.8d0
real*8, parameter :: tauNMDA_tuftRS_to_deepbask =100.d0
real*8, parameter :: tauAMPA_tuftRS_to_deepaxax =.8d0
real*8, parameter :: tauNMDA_tuftRS_to_deepaxax =100.d0
real*8, parameter :: tauAMPA_tuftRS_to_deepLTS =1.d0
real*8, parameter :: tauNMDA_tuftRS_to_deepLTS =100.d0
real*8, parameter :: tauAMPA_tuftRS_to_nontuftRS =2.d0
real*8, parameter :: tauNMDA_tuftRS_to_nontuftRS =130.d0
real*8, parameter :: tauGABA_deepbask_to_spinstell =6.d0
real*8, parameter :: tauGABA_deepbask_to_tuftIB =6.d0
real*8, parameter :: tauGABA_deepbask_to_tuftRS =6.d0
real*8, parameter :: tauGABA_deepbask_to_deepbask =3.d0
real*8, parameter :: tauGABA_deepbask_to_deepaxax =3.d0
real*8, parameter :: tauGABA_deepbask_to_deepLTS =3.d0
real*8, parameter :: tauGABA_deepbask_to_nontuftRS =6.d0
real*8, parameter :: tauGABA_deepaxax_to_suppyrRS =6.d0
real*8, parameter :: tauGABA_deepaxax_to_suppyrFRB =6.d0
real*8, parameter :: tauGABA_deepaxax_to_spinstell =6.d0
real*8, parameter :: tauGABA_deepaxax_to_tuftIB =6.d0
real*8, parameter :: tauGABA_deepaxax_to_tuftRS =6.d0
real*8, parameter :: tauGABA_deepaxax_to_nontuftRS =6.d0
real*8, parameter :: tauGABA_deepLTS_to_suppyrRS =20.d0
real*8, parameter :: tauGABA_deepLTS_to_suppyrFRB =20.d0
real*8, parameter :: tauGABA_deepLTS_to_supbask =20.d0
real*8, parameter :: tauGABA_deepLTS_to_supaxax =20.d0
real*8, parameter :: tauGABA_deepLTS_to_supLTS =20.d0
real*8, parameter :: tauGABA_deepLTS_to_spinstell =20.d0
real*8, parameter :: tauGABA_deepLTS_to_tuftIB =20.d0
real*8, parameter :: tauGABA_deepLTS_to_tuftRS =20.d0
real*8, parameter :: tauGABA_deepLTS_to_deepbask =20.d0
real*8, parameter :: tauGABA_deepLTS_to_deepaxax =20.d0
real*8, parameter :: tauGABA_deepLTS_to_deepLTS =20.d0
real*8, parameter :: tauGABA_deepLTS_to_nontuftRS =20.d0
real*8, parameter :: tauAMPA_TCR_to_suppyrRS =2.d0
real*8, parameter :: tauNMDA_TCR_to_suppyrRS =130.d0
real*8, parameter :: tauAMPA_TCR_to_suppyrFRB =2.d0
real*8, parameter :: tauNMDA_TCR_to_suppyrFRB =130.d0
real*8, parameter :: tauAMPA_TCR_to_supbask =1.d0
real*8, parameter :: tauNMDA_TCR_to_supbask =100.d0
real*8, parameter :: tauAMPA_TCR_to_supaxax =1.d0
real*8, parameter :: tauNMDA_TCR_to_supaxax =100.d0
real*8, parameter :: tauAMPA_TCR_to_spinstell =2.0d0
real*8, parameter :: tauNMDA_TCR_to_spinstell =130.d0
real*8, parameter :: tauAMPA_TCR_to_tuftIB =2.d0
real*8, parameter :: tauNMDA_TCR_to_tuftIB =130.d0
real*8, parameter :: tauAMPA_TCR_to_tuftRS =2.d0
real*8, parameter :: tauNMDA_TCR_to_tuftRS =130.d0
real*8, parameter :: tauAMPA_TCR_to_deepbask =1.d0
real*8, parameter :: tauNMDA_TCR_to_deepbask =100.d0
real*8, parameter :: tauAMPA_TCR_to_deepaxax =1.d0
real*8, parameter :: tauNMDA_TCR_to_deepaxax =100.d0
real*8, parameter :: tauAMPA_TCR_to_nRT =2.0d0
real*8, parameter :: tauNMDA_TCR_to_nRT =150.d0
real*8, parameter :: tauAMPA_TCR_to_nontuftRS =2.0d0
real*8, parameter :: tauNMDA_TCR_to_nontuftRS =130.d0
! real*8, parameter :: tauGABA1_nRT_to_TCR =10.d0
! real*8, parameter :: tauGABA2_nRT_to_TCR =30.d0
! real*8, parameter :: tauGABA1_nRT_to_nRT =18.d0
! real*8, parameter :: tauGABA2_nRT_to_nRT =89.d0
! See notebook entry of 17 Feb. 2004.
! Speed these up per Huntsman & Huguenard (2000)
real*8, parameter :: tauGABA1_nRT_to_TCR =3.30d0
real*8, parameter :: tauGABA2_nRT_to_TCR =10.d0
real*8, parameter :: tauGABA1_nRT_to_nRT = 9.d0
real*8, parameter :: tauGABA2_nRT_to_nRT =44.5d0
real*8, parameter :: tauAMPA_nontuftRS_to_suppyrRS =2.d0
real*8, parameter :: tauNMDA_nontuftRS_to_suppyrRS =130.d0
real*8, parameter :: tauAMPA_nontuftRS_to_suppyrFRB =2.d0
real*8, parameter :: tauNMDA_nontuftRS_to_suppyrFRB =130.d0
real*8, parameter :: tauAMPA_nontuftRS_to_supbask =.8d0
real*8, parameter :: tauNMDA_nontuftRS_to_supbask =100.d0
real*8, parameter :: tauAMPA_nontuftRS_to_supaxax =.8d0
real*8, parameter :: tauNMDA_nontuftRS_to_supaxax =100.d0
real*8, parameter :: tauAMPA_nontuftRS_to_supLTS =1.0d0
real*8, parameter :: tauNMDA_nontuftRS_to_supLTS =100.d0
real*8, parameter :: tauAMPA_nontuftRS_to_spinstell =2.d0
real*8, parameter :: tauNMDA_nontuftRS_to_spinstell =130.d0
real*8, parameter :: tauAMPA_nontuftRS_to_tuftIB =2.d0
real*8, parameter :: tauNMDA_nontuftRS_to_tuftIB =130.d0
real*8, parameter :: tauAMPA_nontuftRS_to_tuftRS =2.d0
real*8, parameter :: tauNMDA_nontuftRS_to_tuftRS =130.d0
real*8, parameter :: tauAMPA_nontuftRS_to_deepbask =.8d0
real*8, parameter :: tauNMDA_nontuftRS_to_deepbask =100.d0
real*8, parameter :: tauAMPA_nontuftRS_to_deepaxax =.8d0
real*8, parameter :: tauNMDA_nontuftRS_to_deepaxax =100.d0
real*8, parameter :: tauAMPA_nontuftRS_to_deepLTS =1.d0
real*8, parameter :: tauNMDA_nontuftRS_to_deepLTS =100.d0
real*8, parameter :: tauAMPA_nontuftRS_to_TCR =2.d0
real*8, parameter :: tauNMDA_nontuftRS_to_TCR =130.d0
real*8, parameter :: tauAMPA_nontuftRS_to_nRT =2.0d0
real*8, parameter :: tauNMDA_nontuftRS_to_nRT =100.d0
real*8, parameter :: tauAMPA_nontuftRS_to_nontuftRS =2.d0
real*8, parameter :: tauNMDA_nontuftRS_to_nontuftRS =130.d0
c End definition of synaptic time constants
c Synaptic conductance scaling factors.
real*8 gAMPA_suppyrRS_to_suppyrRS/0.25d-3/
real*8 gNMDA_suppyrRS_to_suppyrRS/0.025d-3/
real*8 gAMPA_suppyrRS_to_suppyrFRB/0.25d-3/
real*8 gNMDA_suppyrRS_to_suppyrFRB/0.025d-3/
real*8 gAMPA_suppyrRS_to_supbask /3.00d-3/
real*8 gNMDA_suppyrRS_to_supbask /0.15d-3/
real*8 gAMPA_suppyrRS_to_supaxax /3.0d-3/
real*8 gNMDA_suppyrRS_to_supaxax /0.15d-3/
real*8 gAMPA_suppyrRS_to_supLTS /2.0d-3/
real*8 gNMDA_suppyrRS_to_supLTS /0.15d-3/
real*8 gAMPA_suppyrRS_to_spinstell/0.10d-3/
real*8 gNMDA_suppyrRS_to_spinstell/0.01d-3/
real*8 gAMPA_suppyrRS_to_tuftIB /0.10d-3/
real*8 gNMDA_suppyrRS_to_tuftIB /0.01d-3/
real*8 gAMPA_suppyrRS_to_tuftRS /0.10d-3/
real*8 gNMDA_suppyrRS_to_tuftRS /0.01d-3/
real*8 gAMPA_suppyrRS_to_deepbask /1.00d-3/
real*8 gNMDA_suppyrRS_to_deepbask /0.10d-3/
real*8 gAMPA_suppyrRS_to_deepaxax /1.00d-3/
real*8 gNMDA_suppyrRS_to_deepaxax /0.10d-3/
real*8 gAMPA_suppyrRS_to_deepLTS /1.00d-3/
real*8 gNMDA_suppyrRS_to_deepLTS /0.15d-3/
real*8 gAMPA_suppyrRS_to_nontuftRS/0.50d-3/
real*8 gNMDA_suppyrRS_to_nontuftRS/0.05d-3/
real*8 gAMPA_suppyrFRB_to_suppyrRS/0.25d-3/
real*8 gNMDA_suppyrFRB_to_suppyrRS/0.025d-3/
real*8 gAMPA_suppyrFRB_to_suppyrFRB/0.25d-3/
real*8 gNMDA_suppyrFRB_to_suppyrFRB/.025d-3/
real*8 gAMPA_suppyrFRB_to_supbask /3.00d-3/
real*8 gNMDA_suppyrFRB_to_supbask /0.10d-3/
real*8 gAMPA_suppyrFRB_to_supaxax /3.0d-3/
real*8 gNMDA_suppyrFRB_to_supaxax /0.10d-3/
real*8 gAMPA_suppyrFRB_to_supLTS /2.0d-3/
real*8 gNMDA_suppyrFRB_to_supLTS /0.10d-3/
real*8 gAMPA_suppyrFRB_to_spinstell/0.10d-3/
real*8 gNMDA_suppyrFRB_to_spinstell/0.01d-3/
real*8 gAMPA_suppyrFRB_to_tuftIB /0.10d-3/
real*8 gNMDA_suppyrFRB_to_tuftIB /0.01d-3/
real*8 gAMPA_suppyrFRB_to_tuftRS /0.10d-3/
real*8 gNMDA_suppyrFRB_to_tuftRS /0.01d-3/
real*8 gAMPA_suppyrFRB_to_deepbask /1.00d-3/
real*8 gNMDA_suppyrFRB_to_deepbask /0.10d-3/
real*8 gAMPA_suppyrFRB_to_deepaxax /1.00d-3/
real*8 gNMDA_suppyrFRB_to_deepaxax /0.10d-3/
real*8 gAMPA_suppyrFRB_to_deepLTS /1.00d-3/
real*8 gNMDA_suppyrFRB_to_deepLTS /0.10d-3/
real*8 gAMPA_suppyrFRB_to_nontuftRS/0.50d-3/
real*8 gNMDA_suppyrFRB_to_nontuftRS/0.05d-3/
real*8 gGABA_supbask_to_suppyrRS /1.2d-3/
real*8 gGABA_supbask_to_suppyrFRB /1.2d-3/
real*8 gGABA_supbask_to_supbask /0.2d-3/
real*8 gGABA_supbask_to_supaxax /0.2d-3/
real*8 gGABA_supbask_to_supLTS /0.5d-3/
! real*8 gGABA_supbask_to_spinstell /0.7d-3/
real*8 gGABA_supbask_to_spinstell /0.1d-3/ ! if main inhib. to spinstell from deep int.
real*8 gGABA_supaxax_to_suppyrRS /1.2d-3/
real*8 gGABA_supaxax_to_suppyrFRB /1.2d-3/
! real*8 gGABA_supaxax_to_spinstell /1.0d-3/
real*8 gGABA_supaxax_to_spinstell /0.1d-3/ ! if main inhib. to spinstell from deep int.
real*8 gGABA_supaxax_to_tuftIB /1.0d-3/
real*8 gGABA_supaxax_to_tuftRS /1.0d-3/
real*8 gGABA_supaxax_to_nontuftRS /1.0d-3/
real*8 gGABA_supLTS_to_suppyrRS /.01d-3/
real*8 gGABA_supLTS_to_suppyrFRB /.01d-3/
real*8 gGABA_supLTS_to_supbask /.01d-3/
real*8 gGABA_supLTS_to_supaxax /.01d-3/
real*8 gGABA_supLTS_to_supLTS /.05d-3/
real*8 gGABA_supLTS_to_spinstell /.01d-3/
real*8 gGABA_supLTS_to_tuftIB /.02d-3/
real*8 gGABA_supLTS_to_tuftRS /.02d-3/
real*8 gGABA_supLTS_to_deepbask /.01d-3/
real*8 gGABA_supLTS_to_deepaxax /.01d-3/
real*8 gGABA_supLTS_to_deepLTS /.05d-3/
real*8 gGABA_supLTS_to_nontuftRS /.01d-3/
real*8 gAMPA_spinstell_to_suppyrRS /1.0d-3/
real*8 gNMDA_spinstell_to_suppyrRS /0.1d-3/
real*8 gAMPA_spinstell_to_suppyrFRB/1.0d-3/
real*8 gNMDA_spinstell_to_suppyrFRB/0.1d-3/
real*8 gAMPA_spinstell_to_supbask /1.0d-3/
real*8 gNMDA_spinstell_to_supbask /.15d-3/
real*8 gAMPA_spinstell_to_supaxax /1.0d-3/
real*8 gNMDA_spinstell_to_supaxax /.15d-3/
real*8 gAMPA_spinstell_to_supLTS /1.0d-3/
real*8 gNMDA_spinstell_to_supLTS /.15d-3/
real*8 gAMPA_spinstell_to_spinstell/1.0d-3/
real*8 gNMDA_spinstell_to_spinstell/0.1d-3/
real*8 gAMPA_spinstell_to_tuftIB /1.0d-3/
real*8 gNMDA_spinstell_to_tuftIB /0.1d-3/
real*8 gAMPA_spinstell_to_tuftRS /1.0d-3/
real*8 gNMDA_spinstell_to_tuftRS /0.1d-3/
real*8 gAMPA_spinstell_to_deepbask /1.0d-3/
real*8 gNMDA_spinstell_to_deepbask /.15d-3/
real*8 gAMPA_spinstell_to_deepaxax /1.0d-3/
real*8 gNMDA_spinstell_to_deepaxax /.15d-3/
real*8 gAMPA_spinstell_to_deepLTS /1.0d-3/
real*8 gNMDA_spinstell_to_deepLTS /.15d-3/
real*8 gAMPA_spinstell_to_nontuftRS/1.0d-3/
real*8 gNMDA_spinstell_to_nontuftRS/0.1d-3/
real*8 gAMPA_tuftIB_to_suppyrRS /0.5d-3/
real*8 gNMDA_tuftIB_to_suppyrRS /0.05d-3/
real*8 gAMPA_tuftIB_to_suppyrFRB /0.5d-3/
real*8 gNMDA_tuftIB_to_suppyrFRB /0.05d-3/
real*8 gAMPA_tuftIB_to_supbask /1.0d-3/
real*8 gNMDA_tuftIB_to_supbask /0.15d-3/
real*8 gAMPA_tuftIB_to_supaxax /1.0d-3/
real*8 gNMDA_tuftIB_to_supaxax /0.15d-3/
real*8 gAMPA_tuftIB_to_supLTS /1.0d-3/
real*8 gNMDA_tuftIB_to_supLTS /0.15d-3/
real*8 gAMPA_tuftIB_to_spinstell /0.5d-3/
real*8 gNMDA_tuftIB_to_spinstell /0.05d-3/
real*8 gAMPA_tuftIB_to_tuftIB /2.0d-3/
real*8 gNMDA_tuftIB_to_tuftIB /0.20d-3/
real*8 gAMPA_tuftIB_to_tuftRS /2.0d-3/
real*8 gNMDA_tuftIB_to_tuftRS /0.20d-3/
real*8 gAMPA_tuftIB_to_deepbask /3.0d-3/
real*8 gNMDA_tuftIB_to_deepbask /0.15d-3/
real*8 gAMPA_tuftIB_to_deepaxax /3.0d-3/
real*8 gNMDA_tuftIB_to_deepaxax /0.15d-3/
real*8 gAMPA_tuftIB_to_deepLTS /2.0d-3/
real*8 gNMDA_tuftIB_to_deepLTS /0.15d-3/
real*8 gAMPA_tuftIB_to_nontuftRS /2.0d-3/
real*8 gNMDA_tuftIB_to_nontuftRS /0.20d-3/
real*8 gAMPA_tuftRS_to_suppyrRS /0.5d-3/
real*8 gNMDA_tuftRS_to_suppyrRS /0.05d-3/
real*8 gAMPA_tuftRS_to_suppyrFRB /0.5d-3/
real*8 gNMDA_tuftRS_to_suppyrFRB /0.05d-3/
real*8 gAMPA_tuftRS_to_supbask /1.0d-3/
real*8 gNMDA_tuftRS_to_supbask /0.15d-3/
real*8 gAMPA_tuftRS_to_supaxax /1.0d-3/
real*8 gNMDA_tuftRS_to_supaxax /0.15d-3/
real*8 gAMPA_tuftRS_to_supLTS /1.0d-3/
real*8 gNMDA_tuftRS_to_supLTS /0.15d-3/
real*8 gAMPA_tuftRS_to_spinstell /0.5d-3/
real*8 gNMDA_tuftRS_to_spinstell /0.05d-3/
real*8 gAMPA_tuftRS_to_tuftIB /1.0d-3/
real*8 gNMDA_tuftRS_to_tuftIB /0.10d-3/
real*8 gAMPA_tuftRS_to_tuftRS /1.0d-3/
real*8 gNMDA_tuftRS_to_tuftRS /0.10d-3/
real*8 gAMPA_tuftRS_to_deepbask /3.0d-3/
real*8 gNMDA_tuftRS_to_deepbask /0.10d-3/
real*8 gAMPA_tuftRS_to_deepaxax /3.0d-3/
real*8 gNMDA_tuftRS_to_deepaxax /0.10d-3/
real*8 gAMPA_tuftRS_to_deepLTS /2.0d-3/
real*8 gNMDA_tuftRS_to_deepLTS /0.10d-3/
real*8 gAMPA_tuftRS_to_nontuftRS /1.0d-3/
real*8 gNMDA_tuftRS_to_nontuftRS /0.10d-3/
! real*8 gGABA_deepbask_to_spinstell /1.0d-3/
real*8 gGABA_deepbask_to_spinstell /1.5d-3/ ! ? suppress spiny stellate bursts ?
real*8 gGABA_deepbask_to_tuftIB /0.7d-3/
real*8 gGABA_deepbask_to_tuftRS /0.7d-3/
real*8 gGABA_deepbask_to_deepbask /0.2d-3/
real*8 gGABA_deepbask_to_deepaxax /0.2d-3/
real*8 gGABA_deepbask_to_deepLTS /0.7d-3/
real*8 gGABA_deepbask_to_nontuftRS /0.7d-3/
real*8 gGABA_deepaxax_to_suppyrRS /1.0d-3/
real*8 gGABA_deepaxax_to_suppyrFRB /1.0d-3/
! real*8 gGABA_deepaxax_to_spinstell /1.0d-3/
real*8 gGABA_deepaxax_to_spinstell /1.5d-3/ ! ? suppress spiny stellate bursts ?
real*8 gGABA_deepaxax_to_tuftIB /1.0d-3/
real*8 gGABA_deepaxax_to_tuftRS /1.0d-3/
real*8 gGABA_deepaxax_to_nontuftRS /1.0d-3/
real*8 gGABA_deepLTS_to_suppyrRS /.01d-3/
real*8 gGABA_deepLTS_to_suppyrFRB /.01d-3/
real*8 gGABA_deepLTS_to_supbask /.01d-3/
real*8 gGABA_deepLTS_to_supaxax /.01d-3/
real*8 gGABA_deepLTS_to_supLTS /.05d-3/
real*8 gGABA_deepLTS_to_spinstell /.01d-3/
! real*8 gGABA_deepLTS_to_tuftIB /.02d-3/
real*8 gGABA_deepLTS_to_tuftIB /.05d-3/ ! will this help suppress bursting?
real*8 gGABA_deepLTS_to_tuftRS /.02d-3/
real*8 gGABA_deepLTS_to_deepbask /.01d-3/
real*8 gGABA_deepLTS_to_deepaxax /.01d-3/
real*8 gGABA_deepLTS_to_deepLTS /.05d-3/
real*8 gGABA_deepLTS_to_nontuftRS /.01d-3/
real*8 gAMPA_TCR_to_suppyrRS /0.5d-3/
real*8 gNMDA_TCR_to_suppyrRS /0.05d-3/
real*8 gAMPA_TCR_to_suppyrFRB /0.5d-3/
real*8 gNMDA_TCR_to_suppyrFRB /0.05d-3/
! real*8 gAMPA_TCR_to_supbask /1.0d-3/
real*8 gAMPA_TCR_to_supbask /0.1d-3/
! try a variation in which main feedforward inhibtion from thalamus
! is via deep interneurons. May be necessary later to include special
! layer 4 interneurons
! real*8 gNMDA_TCR_to_supbask /.10d-3/
real*8 gNMDA_TCR_to_supbask /.01d-3/
! real*8 gAMPA_TCR_to_supaxax /1.0d-3/
real*8 gAMPA_TCR_to_supaxax /0.1d-3/
! real*8 gNMDA_TCR_to_supaxax /.10d-3/
real*8 gNMDA_TCR_to_supaxax /.01d-3/
real*8 gAMPA_TCR_to_spinstell /1.0d-3/
real*8 gNMDA_TCR_to_spinstell /.10d-3/
real*8 gAMPA_TCR_to_tuftIB /1.5d-3/
real*8 gNMDA_TCR_to_tuftIB /.15d-3/
real*8 gAMPA_TCR_to_tuftRS /1.5d-3/
real*8 gNMDA_TCR_to_tuftRS /.15d-3/
! real*8 gAMPA_TCR_to_deepbask /1.0d-3/
real*8 gAMPA_TCR_to_deepbask /1.5d-3/
real*8 gNMDA_TCR_to_deepbask /.10d-3/
real*8 gAMPA_TCR_to_deepaxax /1.0d-3/
real*8 gNMDA_TCR_to_deepaxax /.10d-3/
real*8 gAMPA_TCR_to_nRT /0.75d-3/
real*8 gNMDA_TCR_to_nRT /.15d-3/
real*8 gAMPA_TCR_to_nontuftRS /1.0d-3/
real*8 gNMDA_TCR_to_nontuftRS /.10d-3/
! real*8 gGABA_nRT_to_TCR /1.0d-3/
real*8 gGABA_nRT_to_TCR(num_nRT)
! Values here need to be set below
real*8 gGABA_nRT_to_nRT /0.30d-3/
real*8 gAMPA_nontuftRS_to_suppyrRS /0.5d-3/
real*8 gNMDA_nontuftRS_to_suppyrRS /0.05d-3/
real*8 gAMPA_nontuftRS_to_suppyrFRB /0.5d-3/
real*8 gNMDA_nontuftRS_to_suppyrFRB /0.05d-3/
real*8 gAMPA_nontuftRS_to_supbask /1.0d-3/
real*8 gNMDA_nontuftRS_to_supbask /0.1d-3/
real*8 gAMPA_nontuftRS_to_supaxax /1.0d-3/
real*8 gNMDA_nontuftRS_to_supaxax /0.1d-3/
real*8 gAMPA_nontuftRS_to_supLTS /1.0d-3/
real*8 gNMDA_nontuftRS_to_supLTS /0.1d-3/
real*8 gAMPA_nontuftRS_to_spinstell /0.5d-3/
real*8 gNMDA_nontuftRS_to_spinstell /0.05d-3/
real*8 gAMPA_nontuftRS_to_tuftIB /1.0d-3/
real*8 gNMDA_nontuftRS_to_tuftIB /0.1d-3/
real*8 gAMPA_nontuftRS_to_tuftRS /1.0d-3/
real*8 gNMDA_nontuftRS_to_tuftRS /0.1d-3/
real*8 gAMPA_nontuftRS_to_deepbask /3.0d-3/
real*8 gNMDA_nontuftRS_to_deepbask /.10d-3/
real*8 gAMPA_nontuftRS_to_deepaxax /3.0d-3/
real*8 gNMDA_nontuftRS_to_deepaxax /.10d-3/
real*8 gAMPA_nontuftRS_to_deepLTS /2.0d-3/
real*8 gNMDA_nontuftRS_to_deepLTS /.10d-3/
real*8 gAMPA_nontuftRS_to_TCR /.75d-3/
real*8 gNMDA_nontuftRS_to_TCR /.075d-3/
real*8 gAMPA_nontuftRS_to_nRT /0.5d-3/
real*8 gNMDA_nontuftRS_to_nRT /0.05d-3/
real*8 gAMPA_nontuftRS_to_nontuftRS /1.0d-3/
real*8 gNMDA_nontuftRS_to_nontuftRS /0.1d-3/
c End defining synaptic conductance scaling factors
c Begin definition of compartments where synaptic connections
c can form.
INTEGER compallow_suppyrRS_to_suppyrRS
& (ncompallow_suppyrRS_to_suppyrRS)
& /2,3,4,5,6,7,8,9,14,15,16,17,18,19,20,21,26,
& 27,28,29,30,31,32,33,10,11,12,13,22,23,24,25,
& 34,35,36,37/
INTEGER compallow_suppyrRS_to_suppyrFRB
& (ncompallow_suppyrRS_to_suppyrFRB)
& /2,3,4,5,6,7,8,9,14,15,16,17,18,19,20,21,26,
& 27,28,29,30,31,32,33,10,11,12,13,22,23,24,25,
& 34,35,36,37/
INTEGER compallow_suppyrRS_to_supbask
& (ncompallow_suppyrRS_to_supbask )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrRS_to_supaxax
& (ncompallow_suppyrRS_to_supaxax )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrRS_to_supLTS
& (ncompallow_suppyrRS_to_supLTS )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrRS_to_spinstell
& (ncompallow_suppyrRS_to_spinstell)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrRS_to_tuftIB
& (ncompallow_suppyrRS_to_tuftIB )
& /39,40,41,42,43,44,45,46/
INTEGER compallow_suppyrRS_to_tuftRS
& (ncompallow_suppyrRS_to_tuftRS )
& /39,40,41,42,43,44,45,46/
INTEGER compallow_suppyrRS_to_deepbask
& (ncompallow_suppyrRS_to_deepbask )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrRS_to_deepaxax
& (ncompallow_suppyrRS_to_deepaxax )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrRS_to_deepLTS
& (ncompallow_suppyrRS_to_deepLTS )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrRS_to_nontuftRS
& (ncompallow_suppyrRS_to_nontuftRS)
& /38,39,40,41,42,43,44/
INTEGER compallow_suppyrFRB_to_suppyrRS
& (ncompallow_suppyrFRB_to_suppyrRS)
& /2,3,4,5,6,7,8,9,14,15,16,17,18,19,20,21,26,
& 27,28,29,30,31,32,33,10,11,12,13,22,23,24,25,
& 34,35,36,37/
INTEGER compallow_suppyrFRB_to_suppyrFRB
& (ncompallow_suppyrFRB_to_suppyrFRB)
& /2,3,4,5,6,7,8,9,14,15,16,17,18,19,20,21,26,
& 27,28,29,30,31,32,33,10,11,12,13,22,23,24,25,
& 34,35,36,37/
INTEGER compallow_suppyrFRB_to_supbask
& (ncompallow_suppyrFRB_to_supbask )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrFRB_to_supaxax
& (ncompallow_suppyrFRB_to_supaxax )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrFRB_to_supLTS
& (ncompallow_suppyrFRB_to_supLTS )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrFRB_to_spinstell
& (ncompallow_suppyrFRB_to_spinstell)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrFRB_to_tuftIB
& (ncompallow_suppyrFRB_to_tuftIB )
& /39,40,41,42,43,44,45,46/
INTEGER compallow_suppyrFRB_to_tuftRS
& (ncompallow_suppyrFRB_to_tuftRS )
& /39,40,41,42,43,44,45,46/
INTEGER compallow_suppyrFRB_to_deepbask
& (ncompallow_suppyrFRB_to_deepbask )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrFRB_to_deepaxax
& (ncompallow_suppyrFRB_to_deepaxax )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrFRB_to_deepLTS
& (ncompallow_suppyrFRB_to_deepLTS )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_suppyrFRB_to_nontuftRS
& (ncompallow_suppyrFRB_to_nontuftRS)
& /38,39,40,41,42,43,44/
INTEGER compallow_supbask_to_suppyrRS
& (ncompallow_supbask_to_suppyrRS)
& /1,2,3,4,5,6,7,8,9,38,39/
INTEGER compallow_supbask_to_suppyrFRB
& (ncompallow_supbask_to_suppyrFRB)
& /1,2,3,4,5,6,7,8,9,38,39/
INTEGER compallow_supbask_to_supbask
& (ncompallow_supbask_to_supbask )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_supbask_to_supaxax
& (ncompallow_supbask_to_supaxax )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_supbask_to_supLTS
& (ncompallow_supbask_to_supLTS )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_supbask_to_spinstell
& (ncompallow_supbask_to_spinstell)
& /1,2,15,28,41/
INTEGER compallow_supLTS_to_suppyrRS
& (ncompallow_supLTS_to_suppyrRS)
& /14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,
& 31,32,33,34,35,36,37,40,41,42,43,44,45,46,47,48,49,
& 50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,
& 67,68/
INTEGER compallow_supLTS_to_suppyrFRB
& (ncompallow_supLTS_to_suppyrFRB)
& /14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,
& 31,32,33,34,35,36,37,40,41,42,43,44,45,46,47,48,49,
& 50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,
& 67,68/
INTEGER compallow_supLTS_to_supbask
& (ncompallow_supLTS_to_supbask)
& /5,6,7,8,9,10,11,12,13,14,18,19,20,21,22,23,24,25,
& 26,27,31,32,33,34,35,36,37,38,39,40,
& 44,45,46,47,48,49,50,51,52,53/
INTEGER compallow_supLTS_to_supaxax
& (ncompallow_supLTS_to_supaxax)
& /5,6,7,8,9,10,11,12,13,14,18,19,20,21,22,23,24,25,
& 26,27,31,32,33,34,35,36,37,38,39,40,
& 44,45,46,47,48,49,50,51,52,53/
INTEGER compallow_supLTS_to_supLTS
& (ncompallow_supLTS_to_supLTS )
& /5,6,7,8,9,10,11,12,13,14,18,19,20,21,22,23,24,25,
& 26,27,31,32,33,34,35,36,37,38,39,40,
& 44,45,46,47,48,49,50,51,52,53/
INTEGER compallow_supLTS_to_spinstell
& (ncompallow_supLTS_to_spinstell)
& /5,6,7,8,9,10,11,12,13,14,18,19,20,21,22,23,24,25,
& 26,27,31,32,33,34,35,36,37,38,39,40,
& 44,45,46,47,48,49,50,51,52,53/
INTEGER compallow_supLTS_to_tuftIB
& (ncompallow_supLTS_to_tuftIB )
& / 13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,
& 29,30,31,32,33,34,38,39,40,41,42,43,44,45,46,47,
& 48,49,50,51,52,53,54,55/
INTEGER compallow_supLTS_to_tuftRS
& (ncompallow_supLTS_to_tuftRS )
& / 13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,
& 29,30,31,32,33,34,38,39,40,41,42,43,44,45,46,47,
& 48,49,50,51,52,53,54,55/
INTEGER compallow_supLTS_to_deepbask
& (ncompallow_supLTS_to_deepbask )
& / 8,9,10,11,12,21,22,23,24,25,34,35,36,37,38,
& 47,48,49,50,51/
INTEGER compallow_supLTS_to_deepaxax
& (ncompallow_supLTS_to_deepaxax )
& / 8,9,10,11,12,21,22,23,24,25,34,35,36,37,38,
& 47,48,49,50,51/
INTEGER compallow_supLTS_to_deepLTS
& (ncompallow_supLTS_to_deepLTS )
& / 8,9,10,11,12,21,22,23,24,25,34,35,36,37,38,
& 47,48,49,50,51/
INTEGER compallow_supLTS_to_nontuftRS
& (ncompallow_supLTS_to_nontuftRS)
& / 13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,
& 29,30,31,32,33,34,38,39,40,41,42,43,44/
c INTEGER compallow_spinstell_to_suppyrRS
c & (ncompallow_spinstell_to_suppyrRS)
c & / 40,41,42,43,44,45,46,47,48,49,50,51,52/
c INTEGER compallow_spinstell_to_suppyrFRB
c & (ncompallow_spinstell_to_suppyrFRB)
c & / 40,41,42,43,44,45,46,47,48,49,50,51,52/
! 3 Mar. 2004: Feldmeyer, ..., Sakmann, J Physiol 2002 assert
! that in barrel ctx, spiny stellates go to basal dendrites of
! layer 2/3 pyramids
INTEGER compallow_spinstell_to_suppyrRS
& (ncompallow_spinstell_to_suppyrRS)
& / 2, 3, 4, 5, 6, 7, 8, 9,14,15,16,17,18,19,20,21,
& 26,27,28,29,30,31,32,33/
INTEGER compallow_spinstell_to_suppyrFRB
& (ncompallow_spinstell_to_suppyrFRB)
& / 2, 3, 4, 5, 6, 7, 8, 9,14,15,16,17,18,19,20,21,
& 26,27,28,29,30,31,32,33/
INTEGER compallow_spinstell_to_supbask
& (ncompallow_spinstell_to_supbask )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_spinstell_to_supaxax
& (ncompallow_spinstell_to_supaxax )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_spinstell_to_supLTS
& (ncompallow_spinstell_to_supLTS )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_spinstell_to_spinstell
& (ncompallow_spinstell_to_spinstell)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_spinstell_to_tuftIB
& (ncompallow_spinstell_to_tuftIB )
& / 7,8,9,10,11,12,36,37,38,39,40,41/
INTEGER compallow_spinstell_to_tuftRS
& (ncompallow_spinstell_to_tuftRS )
& / 7,8,9,10,11,12,36,37,38,39,40,41/
INTEGER compallow_spinstell_to_deepbask
& (ncompallow_spinstell_to_deepbask )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_spinstell_to_deepaxax
& (ncompallow_spinstell_to_deepaxax )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_spinstell_to_deepLTS
& (ncompallow_spinstell_to_deepLTS )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_spinstell_to_nontuftRS
& (ncompallow_spinstell_to_nontuftRS)
& / 37,38,39,40,41/
INTEGER compallow_tuftIB_to_suppyrRS
& (ncompallow_tuftIB_to_suppyrRS)
& / 40,41,42,43,44,45,46,47,48,49,50,51,52/
INTEGER compallow_tuftIB_to_suppyrFRB
& (ncompallow_tuftIB_to_suppyrFRB)
& / 40,41,42,43,44,45,46,47,48,49,50,51,52/
INTEGER compallow_tuftIB_to_supbask
& (ncompallow_tuftIB_to_supbask)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftIB_to_supaxax
& (ncompallow_tuftIB_to_supaxax)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftIB_to_supLTS
& (ncompallow_tuftIB_to_supLTS )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftIB_to_spinstell
& (ncompallow_tuftIB_to_spinstell)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftIB_to_tuftIB
& (ncompallow_tuftIB_to_tuftIB)
& / 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
& 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,
& 38,39,40,41,42,43,44,45,46,47/
INTEGER compallow_tuftIB_to_tuftRS
& (ncompallow_tuftIB_to_tuftRS)
& / 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
& 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,
& 38,39,40,41,42,43,44,45,46,47/
INTEGER compallow_tuftIB_to_deepbask
& (ncompallow_tuftIB_to_deepbask)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftIB_to_deepaxax
& (ncompallow_tuftIB_to_deepaxax)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftIB_to_deepLTS
& (ncompallow_tuftIB_to_deepLTS )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftIB_to_nontuftRS
& (ncompallow_tuftIB_to_nontuftRS)
& /2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
& 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,
& 37,38,39,40,41,42,43,44/
INTEGER compallow_tuftRS_to_suppyrRS
& (ncompallow_tuftRS_to_suppyrRS)
& / 40,41,42,43,44,45,46,47,48,49,50,51,52/
INTEGER compallow_tuftRS_to_suppyrFRB
& (ncompallow_tuftRS_to_suppyrFRB)
& / 40,41,42,43,44,45,46,47,48,49,50,51,52/
INTEGER compallow_tuftRS_to_supbask
& (ncompallow_tuftRS_to_supbask)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftRS_to_supaxax
& (ncompallow_tuftRS_to_supaxax)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftRS_to_supLTS
& (ncompallow_tuftRS_to_supLTS )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftRS_to_spinstell
& (ncompallow_tuftRS_to_spinstell)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftRS_to_tuftIB
& (ncompallow_tuftRS_to_tuftIB)
& / 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
& 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,
& 38,39,40,41,42,43,44,45,46,47/
INTEGER compallow_tuftRS_to_tuftRS
& (ncompallow_tuftRS_to_tuftRS)
& / 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
& 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,
& 38,39,40,41,42,43,44,45,46,47/
INTEGER compallow_tuftRS_to_deepbask
& (ncompallow_tuftRS_to_deepbask)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftRS_to_deepaxax
& (ncompallow_tuftRS_to_deepaxax)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftRS_to_deepLTS
& (ncompallow_tuftRS_to_deepLTS )
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_tuftRS_to_nontuftRS
& (ncompallow_tuftRS_to_nontuftRS)
& /2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
& 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,
& 37,38,39,40,41,42,43,44/
INTEGER compallow_deepbask_to_spinstell
& (ncompallow_deepbask_to_spinstell)
& /1,2,15,28,41/
INTEGER compallow_deepbask_to_tuftIB
& (ncompallow_deepbask_to_tuftIB)
& / 1,2,3,4,5,6,35,36/
INTEGER compallow_deepbask_to_tuftRS
& (ncompallow_deepbask_to_tuftRS)
& / 1,2,3,4,5,6,35,36/
INTEGER compallow_deepbask_to_deepbask
& (ncompallow_deepbask_to_deepbask)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_deepbask_to_deepaxax
& (ncompallow_deepbask_to_deepaxax)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_deepbask_to_deepLTS
& (ncompallow_deepbask_to_deepLTS)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_deepbask_to_nontuftRS
& (ncompallow_deepbask_to_nontuftRS)
& /1,2,3,4,5,6,35,36/
INTEGER compallow_deepLTS_to_suppyrRS
& (ncompallow_deepLTS_to_suppyrRS)
& /14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,
& 31,32,33,34,35,36,37,40,41,42,43,44,45,46,47,48,49,
& 50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,
& 67,68/
INTEGER compallow_deepLTS_to_suppyrFRB
& (ncompallow_deepLTS_to_suppyrFRB)
& /14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,
& 31,32,33,34,35,36,37,40,41,42,43,44,45,46,47,48,49,
& 50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,
& 67,68/
INTEGER compallow_deepLTS_to_supbask
& (ncompallow_deepLTS_to_supbask)
& / 8,9,10,11,12,21,22,23,24,25,34,35,36,37,38,
& 47,48,49,50,51/
INTEGER compallow_deepLTS_to_supaxax
& (ncompallow_deepLTS_to_supaxax)
& / 8,9,10,11,12,21,22,23,24,25,34,35,36,37,38,
& 47,48,49,50,51/
INTEGER compallow_deepLTS_to_supLTS
& (ncompallow_deepLTS_to_supLTS)
& / 8,9,10,11,12,21,22,23,24,25,34,35,36,37,38,
& 47,48,49,50,51/
INTEGER compallow_deepLTS_to_spinstell
& (ncompallow_deepLTS_to_spinstell)
& /5,6,7,8,9,10,11,12,13,14,18,19,20,21,22,23,24,25,
& 26,27,31,32,33,34,35,36,37,38,39,40,
& 44,45,46,47,48,49,50,51,52,53/
INTEGER compallow_deepLTS_to_tuftIB
& (ncompallow_deepLTS_to_tuftIB)
& / 13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,
& 29,30,31,32,33,34,38,39,40,41,42,43,44,45,46,47,
& 48,49,50,51,52,53,54,55/
INTEGER compallow_deepLTS_to_tuftRS
& (ncompallow_deepLTS_to_tuftRS)
& / 13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,
& 29,30,31,32,33,34,38,39,40,41,42,43,44,45,46,47,
& 48,49,50,51,52,53,54,55/
INTEGER compallow_deepLTS_to_deepbask
& (ncompallow_deepLTS_to_deepbask)
& /5,6,7,8,9,10,11,12,13,14,18,19,20,21,22,23,24,25,
& 26,27,31,32,33,34,35,36,37,38,39,40,
& 44,45,46,47,48,49,50,51,52,53/
INTEGER compallow_deepLTS_to_deepaxax
& (ncompallow_deepLTS_to_deepaxax)
& /5,6,7,8,9,10,11,12,13,14,18,19,20,21,22,23,24,25,
& 26,27,31,32,33,34,35,36,37,38,39,40,
& 44,45,46,47,48,49,50,51,52,53/
INTEGER compallow_deepLTS_to_deepLTS
& (ncompallow_deepLTS_to_deepLTS)
& /5,6,7,8,9,10,11,12,13,14,18,19,20,21,22,23,24,25,
& 26,27,31,32,33,34,35,36,37,38,39,40,
& 44,45,46,47,48,49,50,51,52,53/
INTEGER compallow_deepLTS_to_nontuftRS
& (ncompallow_deepLTS_to_nontuftRS)
& / 13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,
& 29,30,31,32,33,34,38,39,40,41,42,43,44/
INTEGER compallow_TCR_to_suppyrRS
& (ncompallow_TCR_to_suppyrRS)
& /45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,
& 61,62,63,64,65,66,67,68/
INTEGER compallow_TCR_to_suppyrFRB
& (ncompallow_TCR_to_suppyrFRB)
& /45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,
& 61,62,63,64,65,66,67,68/
INTEGER compallow_TCR_to_supbask
& (ncompallow_TCR_to_supbask)
& /2,3,4,15,16,17,28,29,30,41,42,43/
INTEGER compallow_TCR_to_supaxax
& (ncompallow_TCR_to_supaxax)
& /2,3,4,15,16,17,28,29,30,41,42,43/
INTEGER compallow_TCR_to_spinstell
& (ncompallow_TCR_to_spinstell)
& /2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
& 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,
& 37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53/
INTEGER compallow_TCR_to_tuftIB
& (ncompallow_TCR_to_tuftIB)
& / 47,48,49,50,51,52,53,54,55/
INTEGER compallow_TCR_to_tuftRS
& (ncompallow_TCR_to_tuftRS)
& / 47,48,49,50,51,52,53,54,55/
INTEGER compallow_TCR_to_deepbask
& (ncompallow_TCR_to_deepbask)
& /2,3,4,15,16,17,28,29,30,41,42,43/
INTEGER compallow_TCR_to_deepaxax
& (ncompallow_TCR_to_deepaxax)
& /2,3,4,15,16,17,28,29,30,41,42,43/
INTEGER compallow_TCR_to_nRT
& (ncompallow_TCR_to_nRT)
& /2,3,4,15,16,17,28,29,30,41,42,43/
INTEGER compallow_TCR_to_nontuftRS
& (ncompallow_TCR_to_nontuftRS)
& /40,41,42,43,44/
INTEGER compallow_nRT_to_TCR
& (ncompallow_nRT_to_TCR)
& /1,2,15,28,41,54,67,80,93,106,119/
INTEGER compallow_nRT_to_nRT
& (ncompallow_nRT_to_nRT)
& /1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
& 20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,
& 36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,
& 52,53/
INTEGER compallow_nontuftRS_to_suppyrRS
& (ncompallow_nontuftRS_to_suppyrRS)
& / 41,42,43,44 /
INTEGER compallow_nontuftRS_to_suppyrFRB
& (ncompallow_nontuftRS_to_suppyrFRB)
& / 41,42,43,44 /
INTEGER compallow_nontuftRS_to_supbask
& (ncompallow_nontuftRS_to_supbask)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_nontuftRS_to_supaxax
& (ncompallow_nontuftRS_to_supaxax)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_nontuftRS_to_supLTS
& (ncompallow_nontuftRS_to_supLTS)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_nontuftRS_to_spinstell
& (ncompallow_nontuftRS_to_spinstell)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_nontuftRS_to_tuftIB
& (ncompallow_nontuftRS_to_tuftIB)
& / 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
& 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,
& 38,39,40,41,42,43,44,45,46,47/
INTEGER compallow_nontuftRS_to_tuftRS
& (ncompallow_nontuftRS_to_tuftRS)
& / 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
& 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,
& 38,39,40,41,42,43,44,45,46,47/
INTEGER compallow_nontuftRS_to_deepbask
& (ncompallow_nontuftRS_to_deepbask)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_nontuftRS_to_deepaxax
& (ncompallow_nontuftRS_to_deepaxax)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_nontuftRS_to_deepLTS
& (ncompallow_nontuftRS_to_deepLTS)
& /5,6,7,8,9,10,18,19,20,21,22,23,31,32,33,34,35,36,
& 44,45,46,47,48,49/
INTEGER compallow_nontuftRS_to_TCR
& (ncompallow_nontuftRS_to_TCR)
& / 6, 7, 8, 9, 10, 11, 12, 13, 14,
& 19, 20, 21, 22, 23, 24, 25, 26, 27,
& 32, 33, 34, 35, 36, 37, 38, 39, 40,
& 45, 46, 47, 48, 49, 50, 51, 52, 53,
& 58, 59, 60, 61, 62, 63, 64, 65, 66,
& 71, 72, 73, 74, 75, 76, 77, 78, 79,
& 84, 85, 86, 87, 88, 89, 90, 91, 92,
& 97, 98, 99,100,101,102,103,104,105,
& 110,111,112,113,114,115,116,117,118,
& 123,124,125,126,127,128,129,130,131/
INTEGER compallow_nontuftRS_to_nRT
& (ncompallow_nontuftRS_to_nRT)
& / 2,3,4,15,16,17,28,29,30,41,42,43/
INTEGER compallow_nontuftRS_to_nontuftRS
& (ncompallow_nontuftRS_to_nontuftRS)
& /2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
& 21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,
& 37,38,39,40,41,42,43,44/
c Maps of synaptic connectivity. For simplicity, all contacts
c only made to one compartment. Axoaxonic cells forced to contact
c initial axon segments; other compartments will be listed in arrays.
INTEGER
& map_suppyrRS_to_suppyrRS(num_suppyrRS_to_suppyrRS,
& num_suppyrRS),
& map_suppyrRS_to_suppyrFRB(num_suppyrRS_to_suppyrFRB,
& num_suppyrFRB),
& map_suppyrRS_to_supbask(num_suppyrRS_to_supbask,
& num_supbask),
& map_suppyrRS_to_supaxax(num_suppyrRS_to_supaxax,
& num_supaxax),
& map_suppyrRS_to_supLTS(num_suppyrRS_to_supLTS,
& num_supLTS),
& map_suppyrRS_to_spinstell(num_suppyrRS_to_spinstell,
& num_spinstell),
& map_suppyrRS_to_tuftIB(num_suppyrRS_to_tuftIB,
& num_tuftIB),
& map_suppyrRS_to_tuftRS(num_suppyrRS_to_tuftRS,
& num_tuftRS),
& map_suppyrRS_to_deepbask(num_suppyrRS_to_deepbask,
& num_deepbask),
& map_suppyrRS_to_deepaxax(num_suppyrRS_to_deepaxax,
& num_deepaxax),
& map_suppyrRS_to_deepLTS(num_suppyrRS_to_deepLTS,
& num_deepLTS),
& map_suppyrRS_to_nontuftrS(num_suppyrRS_to_nontuftRS,
& num_nontuftRS),
& map_suppyrFRB_to_suppyrRS(num_suppyrFRB_to_suppyrRS,
& num_suppyrRS)
INTEGER
& map_suppyrFRB_to_suppyrFRB(num_suppyrFRB_to_suppyrFRB,
& num_suppyrFRB),
& map_suppyrFRB_to_supbask(num_suppyrFRB_to_supbask,
& num_supbask),
& map_suppyrFRB_to_supaxax(num_suppyrFRB_to_supaxax,
& num_supaxax),
& map_suppyrFRB_to_supLTS(num_suppyrFRB_to_supLTS,
& num_supLTS),
& map_suppyrFRB_to_spinstell(num_suppyrFRB_to_spinstell,
& num_spinstell),
& map_suppyrFRB_to_tuftIB(num_suppyrFRB_to_tuftIB,
& num_tuftIB),
& map_suppyrFRB_to_tuftRS(num_suppyrFRB_to_tuftRS,
& num_tuftRS),
& map_suppyrFRB_to_deepbask(num_suppyrFRB_to_deepbask,
& num_deepbask),
& map_suppyrFRB_to_deepaxax(num_suppyrFRB_to_deepaxax,
& num_deepaxax),
& map_suppyrFRB_to_deepLTS(num_suppyrFRB_to_deepLTS,
& num_deepLTS),
& map_suppyrFRB_to_nontuftRS(num_suppyrFRB_to_nontuftRS,
& num_nontuftRS),
& map_supbask_to_suppyrRS(num_supbask_to_suppyrRS,
& num_suppyrRS),
& map_supbask_to_suppyrFRB(num_supbask_to_suppyrFRB,
& num_suppyrFRB),
& map_supbask_to_supbask(num_supbask_to_supbask,
& num_supbask),
& map_supbask_to_supaxax(num_supbask_to_supaxax,
& num_supaxax),
& map_supbask_to_supLTS(num_supbask_to_supLTS,
& num_supLTS),
& map_supbask_to_spinstell(num_supbask_to_spinstell,
& num_spinstell),
& map_supaxax_to_suppyrRS(num_supaxax_to_suppyrRS,
& num_suppyrRS),
& map_supaxax_to_suppyrFRB(num_supaxax_to_suppyrFRB,
& num_suppyrFRB),
& map_supaxax_to_spinstell(num_supaxax_to_spinstell,
& num_spinstell),
& map_supaxax_to_tuftIB(num_supaxax_to_tuftIB,
& num_tuftIB),
& map_supaxax_to_tuftRS(num_supaxax_to_tuftRS,
& num_tuftRS),
& map_supaxax_to_nontuftRS(num_supaxax_to_nontuftRS,
& num_nontuftRS),
& map_supLTS_to_suppyrRS(num_supLTS_to_suppyrRS,
& num_suppyrRS),
& map_supLTS_to_suppyrFRB(num_supLTS_to_suppyrFRB,
& num_suppyrFRB),
& map_supLTS_to_supbask(num_supLTS_to_supbask,
& num_supbask),
& map_supLTS_to_supaxax(num_supLTS_to_supaxax,
& num_supaxax),
& map_supLTS_to_supLTS(num_supLTS_to_supLTS,
& num_supLTS),
& map_supLTS_to_spinstell(num_supLTS_to_spinstell,
& num_spinstell),
& map_supLTS_to_tuftIB(num_supLTS_to_tuftIB,
& num_tuftIB),
& map_supLTS_to_tuftRS(num_supLTS_to_tuftRS,
& num_tuftRS),
& map_supLTS_to_deepbask(num_supLTS_to_deepbask,
& num_deepbask),
& map_supLTS_to_deepaxax(num_supLTS_to_deepaxax,
& num_deepaxax),
& map_supLTS_to_deepLTS(num_supLTS_to_deepLTS,
& num_deepLTS),
& map_supLTS_to_nontuftRS(num_supLTS_to_nontuftRS,
& num_nontuftRS),
& map_spinstell_to_suppyrRS(num_spinstell_to_suppyrRS,
& num_suppyrRS),
& map_spinstell_to_suppyrFRB(num_spinstell_to_suppyrFRB,
& num_suppyrFRB),
& map_spinstell_to_supbask(num_spinstell_to_supbask,
& num_supbask)
INTEGER
& map_spinstell_to_supaxax(num_spinstell_to_supaxax,
& num_supaxax),
& map_spinstell_to_supLTS(num_spinstell_to_supLTS,
& num_supLTS),
& map_spinstell_to_spinstell(num_spinstell_to_spinstell,
& num_spinstell),
& map_spinstell_to_tuftIB(num_spinstell_to_tuftIB,
& num_tuftIB),
& map_spinstell_to_tuftRS(num_spinstell_to_tuftRS,
& num_tuftRS),
& map_spinstell_to_deepbask(num_spinstell_to_deepbask,
& num_deepbask),
& map_spinstell_to_deepaxax(num_spinstell_to_deepaxax,
& num_deepaxax),
& map_spinstell_to_deepLTS(num_spinstell_to_deepLTS,
& num_deepLTS),
& map_spinstell_to_nontuftRS(num_spinstell_to_nontuftRS,
& num_nontuftRS),
& map_tuftIB_to_suppyrRS(num_tuftIB_to_suppyrRS,
& num_suppyrRS),
& map_tuftIB_to_suppyrFRB(num_tuftIB_to_suppyrFRB,
& num_suppyrFRB),
& map_tuftIB_to_supbask(num_tuftIB_to_supbask,
& num_supbask),
& map_tuftIB_to_supaxax(num_tuftIB_to_supaxax,
& num_supaxax),
& map_tuftIB_to_supLTS(num_tuftIB_to_supLTS,
& num_supLTS),
& map_tuftIB_to_spinstell(num_tuftIB_to_spinstell,
& num_spinstell),
& map_tuftIB_to_tuftIB(num_tuftIB_to_tuftIB,
& num_tuftIB),
& map_tuftIB_to_tuftRS(num_tuftIB_to_tuftRS,
& num_tuftRS),
& map_tuftIB_to_deepbask(num_tuftIB_to_deepbask,
& num_deepbask),
& map_tuftIB_to_deepaxax(num_tuftIB_to_deepaxax,
& num_deepaxax),
& map_tuftIB_to_deepLTS(num_tuftIB_to_deepLTS,
& num_deepLTS),
& map_tuftIB_to_nontuftRS(num_tuftIB_to_nontuftRS,
& num_nontuftRS),
& map_tuftRS_to_suppyrRS(num_tuftRS_to_suppyrRS,
& num_suppyrRS),
& map_tuftRS_to_suppyrFRB(num_tuftRS_to_suppyrFRB,
& num_suppyrFRB),
& map_tuftRS_to_supbask(num_tuftRS_to_supbask,
& num_supbask),
& map_tuftRS_to_supaxax(num_tuftRS_to_supaxax,
& num_supaxax),
& map_tuftRS_to_supLTS(num_tuftRS_to_supLTS,
& num_supLTS)
INTEGER
& map_tuftRS_to_spinstell(num_tuftRS_to_spinstell,
& num_spinstell),
& map_tuftRS_to_tuftIB(num_tuftRS_to_tuftIB,
& num_tuftIB),
& map_tuftRS_to_tuftRS(num_tuftRS_to_tuftRS,
& num_tuftRS),
& map_tuftRS_to_deepbask(num_tuftRS_to_deepbask,
& num_deepbask),
& map_tuftRS_to_deepaxax(num_tuftRS_to_deepaxax,
& num_deepaxax),
& map_tuftRS_to_deepLTS(num_tuftRS_to_deepLTS,
& num_deepLTS),
& map_tuftRS_to_nontuftRS(num_tuftRS_to_nontuftRS,
& num_nontuftRS),
& map_deepbask_to_spinstell(num_deepbask_to_spinstell,
& num_spinstell),
& map_deepbask_to_tuftIB(num_deepbask_to_tuftIB,
& num_tuftIB),
& map_deepbask_to_tuftRS(num_deepbask_to_tuftRS,
& num_tuftRS),
& map_deepbask_to_deepbask(num_deepbask_to_deepbask,
& num_deepbask),
& map_deepbask_to_deepaxax(num_deepbask_to_deepaxax,
& num_deepaxax),
& map_deepbask_to_deepLTS(num_deepbask_to_deepLTS,
& num_deepLTS)
INTEGER
& map_deepbask_to_nontuftRS(num_deepbask_to_nontuftRS,
& num_nontuftRS),
& map_deepaxax_to_suppyrRS(num_deepaxax_to_suppyrRS,
& num_suppyrRS),
& map_deepaxax_to_suppyrFRB(num_deepaxax_to_suppyrFRB,
& num_suppyrFRB),
& map_deepaxax_to_spinstell(num_deepaxax_to_spinstell,
& num_spinstell),
& map_deepaxax_to_tuftIB(num_deepaxax_to_tuftIB,
& num_tuftIB),
& map_deepaxax_to_tuftRS(num_deepaxax_to_tuftRS,
& num_tuftRS),
& map_deepaxax_to_nontuftRS(num_deepaxax_to_nontuftRS,
& num_nontuftRS),
& map_deepLTS_to_suppyrRS(num_deepLTS_to_suppyrRS,
& num_suppyrRS),
& map_deepLTS_to_suppyrFRB(num_deepLTS_to_suppyrFRB,
& num_suppyrFRB),
& map_deepLTS_to_supbask(num_deepLTS_to_supbask,
& num_supbask),
& map_deepLTS_to_supaxax(num_deepLTS_to_supaxax,
& num_supaxax),
& map_deepLTS_to_supLTS(num_deepLTS_to_supLTS,
& num_supLTS),
& map_deepLTS_to_spinstell(num_deepLTS_to_spinstell,
& num_spinstell),
& map_deepLTS_to_tuftIB(num_deepLTS_to_tuftIB,
& num_tuftIB),
& map_deepLTS_to_tuftRS(num_deepLTS_to_tuftRS,
& num_tuftRS),
& map_deepLTS_to_deepbask(num_deepLTS_to_deepbask,
& num_deepbask),
& map_deepLTS_to_deepaxax(num_deepLTS_to_deepaxax,
& num_deepaxax),
& map_deepLTS_to_deepLTS(num_deepLTS_to_deepLTS,
& num_deepLTS),
& map_deepLTS_to_nontuftRS(num_deepLTS_to_nontuftRS,
& num_nontuftRS),
& map_TCR_to_suppyrRS(num_TCR_to_suppyrRS,
& num_suppyrRS),
& map_TCR_to_suppyrFRB(num_TCR_to_suppyrFRB,
& num_suppyrFRB),
& map_TCR_to_supbask(num_TCR_to_supbask,
& num_supbask)
INTEGER
& map_TCR_to_supaxax(num_TCR_to_supaxax,num_supaxax),
& map_TCR_to_spinstell(num_TCR_to_spinstell,num_spinstell),
& map_TCR_to_tuftIB(num_TCR_to_tuftIB,num_tuftIB),
& map_TCR_to_tuftRS(num_TCR_to_tuftRS,num_tuftRS),
& map_TCR_to_deepbask(num_TCR_to_deepbask,num_deepbask),
& map_TCR_to_deepaxax(num_TCR_to_deepaxax,num_deepaxax),
& map_TCR_to_nRT(num_TCR_to_nRT,num_nRT),
& map_TCR_to_nontuftRS(num_TCR_to_nontuftRS,num_nontuftRS),
& map_nRT_to_TCR(num_nRT_to_TCR,num_TCR),
& map_nRT_to_nRT(num_nRT_to_nRT,num_nRT),
& map_nontuftRS_to_suppyrRS(num_nontuftRS_to_suppyrRS,
& num_suppyrRS),
& map_nontuftRS_to_suppyrFRB(num_nontuftRS_to_suppyrFRB,
& num_suppyrFRB),
& map_nontuftRS_to_supbask(num_nontuftRS_to_supbask,
& num_supbask),
& map_nontuftRS_to_supaxax(num_nontuftRS_to_supaxax,
& num_supaxax),
& map_nontuftRS_to_supLTS(num_nontuftRS_to_supLTS,
& num_supLTS),
& map_nontuftRS_to_spinstell(num_nontuftRS_to_spinstell,
& num_spinstell),
& map_nontuftRS_to_tuftIB(num_nontuftRS_to_tuftIB,
& num_tuftIB),
& map_nontuftRS_to_tuftRS(num_nontuftRS_to_tuftRS,
& num_tuftRS),
& map_nontuftRS_to_deepbask(num_nontuftRS_to_deepbask,
& num_deepbask),
& map_nontuftRS_to_deepaxax(num_nontuftRS_to_deepaxax,
& num_deepaxax),
& map_nontuftRS_to_deepLTS(num_nontuftRS_to_deepLTS,
& num_deepLTS),
& map_nontuftRS_to_TCR(num_nontuftRS_to_TCR,num_TCR),
& map_nontuftRS_to_nRT(num_nontuftRS_to_nRT,num_nRT),
& map_nontuftRS_to_nontuftRS(num_nontuftRS_to_nontuftRS,
& num_nontuftRS)
c Maps of synaptic compartments. For simplicity, all contacts
c only made to one compartment. Axoaxonic cells forced to contact
c initial axon segments; other compartments will be listed in arrays.
INTEGER
& com_suppyrRS_to_suppyrRS(num_suppyrRS_to_suppyrRS,
& num_suppyrRS),
& com_suppyrRS_to_suppyrFRB(num_suppyrRS_to_suppyrFRB,
& num_suppyrFRB),
& com_suppyrRS_to_supbask(num_suppyrRS_to_supbask,
& num_supbask),
& com_suppyrRS_to_supaxax(num_suppyrRS_to_supaxax,
& num_supaxax),
& com_suppyrRS_to_supLTS(num_suppyrRS_to_supLTS,
& num_supLTS),
& com_suppyrRS_to_spinstell(num_suppyrRS_to_spinstell,
& num_spinstell),
& com_suppyrRS_to_tuftIB(num_suppyrRS_to_tuftIB,
& num_tuftIB),
& com_suppyrRS_to_tuftRS(num_suppyrRS_to_tuftRS,
& num_tuftRS),
& com_suppyrRS_to_deepbask(num_suppyrRS_to_deepbask,
& num_deepbask),
& com_suppyrRS_to_deepaxax(num_suppyrRS_to_deepaxax,
& num_deepaxax),
& com_suppyrRS_to_deepLTS(num_suppyrRS_to_deepLTS,
& num_deepLTS),
& com_suppyrRS_to_nontuftrS(num_suppyrRS_to_nontuftRS,
& num_nontuftRS),
& com_suppyrFRB_to_suppyrRS(num_suppyrFRB_to_suppyrRS,
& num_suppyrRS)
INTEGER
& com_suppyrFRB_to_suppyrFRB(num_suppyrFRB_to_suppyrFRB,
& num_suppyrFRB),
& com_suppyrFRB_to_supbask(num_suppyrFRB_to_supbask,
& num_supbask),
& com_suppyrFRB_to_supaxax(num_suppyrFRB_to_supaxax,
& num_supaxax),
& com_suppyrFRB_to_supLTS(num_suppyrFRB_to_supLTS,
& num_supLTS),
& com_suppyrFRB_to_spinstell(num_suppyrFRB_to_spinstell,
& num_spinstell),
& com_suppyrFRB_to_tuftIB(num_suppyrFRB_to_tuftIB,
& num_tuftIB),
& com_suppyrFRB_to_tuftRS(num_suppyrFRB_to_tuftRS,
& num_tuftRS),
& com_suppyrFRB_to_deepbask(num_suppyrFRB_to_deepbask,
& num_deepbask),
& com_suppyrFRB_to_deepaxax(num_suppyrFRB_to_deepaxax,
& num_deepaxax),
& com_suppyrFRB_to_deepLTS(num_suppyrFRB_to_deepLTS,
& num_deepLTS),
& com_suppyrFRB_to_nontuftRS(num_suppyrFRB_to_nontuftRS,
& num_nontuftRS),
& com_supbask_to_suppyrRS(num_supbask_to_suppyrRS,
& num_suppyrRS),
& com_supbask_to_suppyrFRB(num_supbask_to_suppyrFRB,
& num_suppyrFRB),
& com_supbask_to_supbask(num_supbask_to_supbask,
& num_supbask),
& com_supbask_to_supaxax(num_supbask_to_supaxax,
& num_supaxax),
& com_supbask_to_supLTS(num_supbask_to_supLTS,
& num_supLTS),
& com_supbask_to_spinstell(num_supbask_to_spinstell,
& num_spinstell),
& com_supaxax_to_suppyrRS(num_supaxax_to_suppyrRS,
& num_suppyrRS),
& com_supaxax_to_suppyrFRB(num_supaxax_to_suppyrFRB,
& num_suppyrFRB),
& com_supaxax_to_spinstell(num_supaxax_to_spinstell,
& num_spinstell)
INTEGER
& com_supaxax_to_tuftIB(num_supaxax_to_tuftIB,
& num_tuftIB),
& com_supaxax_to_tuftRS(num_supaxax_to_tuftRS,
& num_tuftRS),
& com_supaxax_to_nontuftRS(num_supaxax_to_nontuftRS,
& num_nontuftRS),
& com_supLTS_to_suppyrRS(num_supLTS_to_suppyrRS,
& num_suppyrRS),
& com_supLTS_to_suppyrFRB(num_supLTS_to_suppyrFRB,
& num_suppyrFRB),
& com_supLTS_to_supbask(num_supLTS_to_supbask,
& num_supbask),
& com_supLTS_to_supaxax(num_supLTS_to_supaxax,
& num_supaxax),
& com_supLTS_to_supLTS(num_supLTS_to_supLTS,
& num_supLTS),
& com_supLTS_to_spinstell(num_supLTS_to_spinstell,
& num_spinstell),
& com_supLTS_to_tuftIB(num_supLTS_to_tuftIB,
& num_tuftIB),
& com_supLTS_to_tuftRS(num_supLTS_to_tuftRS,
& num_tuftRS),
& com_supLTS_to_deepbask(num_supLTS_to_deepbask,
& num_deepbask),
& com_supLTS_to_deepaxax(num_supLTS_to_deepaxax,
& num_deepaxax),
& com_supLTS_to_deepLTS(num_supLTS_to_deepLTS,
& num_deepLTS),
& com_supLTS_to_nontuftRS(num_supLTS_to_nontuftRS,
& num_nontuftRS),
& com_spinstell_to_suppyrRS(num_spinstell_to_suppyrRS,
& num_suppyrRS),
& com_spinstell_to_suppyrFRB(num_spinstell_to_suppyrFRB,
& num_suppyrFRB),
& com_spinstell_to_supbask(num_spinstell_to_supbask,
& num_supbask),
& com_spinstell_to_supaxax(num_spinstell_to_supaxax,
& num_supaxax)
INTEGER
& com_spinstell_to_supLTS(num_spinstell_to_supLTS,
& num_supLTS),
& com_spinstell_to_spinstell(num_spinstell_to_spinstell,
& num_spinstell),
& com_spinstell_to_tuftIB(num_spinstell_to_tuftIB,
& num_tuftIB),
& com_spinstell_to_tuftRS(num_spinstell_to_tuftRS,
& num_tuftRS),
& com_spinstell_to_deepbask(num_spinstell_to_deepbask,
& num_deepbask),
& com_spinstell_to_deepaxax(num_spinstell_to_deepaxax,
& num_deepaxax),
& com_spinstell_to_deepLTS(num_spinstell_to_deepLTS,
& num_deepLTS),
& com_spinstell_to_nontuftRS(num_spinstell_to_nontuftRS,
& num_nontuftRS),
& com_tuftIB_to_suppyrRS(num_tuftIB_to_suppyrRS,
& num_suppyrRS),
& com_tuftIB_to_suppyrFRB(num_tuftIB_to_suppyrFRB,
& num_suppyrFRB),
& com_tuftIB_to_supbask(num_tuftIB_to_supbask,
& num_supbask),
& com_tuftIB_to_supaxax(num_tuftIB_to_supaxax,
& num_supaxax),
& com_tuftIB_to_supLTS(num_tuftIB_to_supLTS,
& num_supLTS),
& com_tuftIB_to_spinstell(num_tuftIB_to_spinstell,
& num_spinstell),
& com_tuftIB_to_tuftIB(num_tuftIB_to_tuftIB,
& num_tuftIB),
& com_tuftIB_to_tuftRS(num_tuftIB_to_tuftRS,
& num_tuftRS),
& com_tuftIB_to_deepbask(num_tuftIB_to_deepbask,
& num_deepbask),
& com_tuftIB_to_deepaxax(num_tuftIB_to_deepaxax,
& num_deepaxax),
& com_tuftIB_to_deepLTS(num_tuftIB_to_deepLTS,
& num_deepLTS),
& com_tuftIB_to_nontuftRS(num_tuftIB_to_nontuftRS,
& num_nontuftRS)
INTEGER
& com_tuftRS_to_suppyrRS(num_tuftRS_to_suppyrRS,
& num_suppyrRS),
& com_tuftRS_to_suppyrFRB(num_tuftRS_to_suppyrFRB,
& num_suppyrFRB),
& com_tuftRS_to_supbask(num_tuftRS_to_supbask,
& num_supbask),
& com_tuftRS_to_supaxax(num_tuftRS_to_supaxax,
& num_supaxax),
& com_tuftRS_to_supLTS(num_tuftRS_to_supLTS,
& num_supLTS),
& com_tuftRS_to_spinstell(num_tuftRS_to_spinstell,
& num_spinstell),
& com_tuftRS_to_tuftIB(num_tuftRS_to_tuftIB,
& num_tuftIB),
& com_tuftRS_to_tuftRS(num_tuftRS_to_tuftRS,
& num_tuftRS),
& com_tuftRS_to_deepbask(num_tuftRS_to_deepbask,
& num_deepbask),
& com_tuftRS_to_deepaxax(num_tuftRS_to_deepaxax,
& num_deepaxax),
& com_tuftRS_to_deepLTS(num_tuftRS_to_deepLTS,
& num_deepLTS),
& com_tuftRS_to_nontuftRS(num_tuftRS_to_nontuftRS,
& num_nontuftRS),
& com_deepbask_to_spinstell(num_deepbask_to_spinstell,
& num_spinstell),
& com_deepbask_to_tuftIB(num_deepbask_to_tuftIB,
& num_tuftIB),
& com_deepbask_to_tuftRS(num_deepbask_to_tuftRS,
& num_tuftRS),
& com_deepbask_to_deepbask(num_deepbask_to_deepbask,
& num_deepbask),
& com_deepbask_to_deepaxax(num_deepbask_to_deepaxax,
& num_deepaxax),
& com_deepbask_to_deepLTS(num_deepbask_to_deepLTS,
& num_deepLTS),
& com_deepbask_to_nontuftRS(num_deepbask_to_nontuftRS,
& num_nontuftRS)
INTEGER
& com_deepaxax_to_suppyrRS(num_deepaxax_to_suppyrRS,
& num_suppyrRS),
& com_deepaxax_to_suppyrFRB(num_deepaxax_to_suppyrFRB,
& num_suppyrFRB),
& com_deepaxax_to_spinstell(num_deepaxax_to_spinstell,
& num_spinstell),
& com_deepaxax_to_tuftIB(num_deepaxax_to_tuftIB,
& num_tuftIB),
& com_deepaxax_to_tuftRS(num_deepaxax_to_tuftRS,
& num_tuftRS),
& com_deepaxax_to_nontuftRS(num_deepaxax_to_nontuftRS,
& num_nontuftRS),
& com_deepLTS_to_suppyrRS(num_deepLTS_to_suppyrRS,
& num_suppyrRS),
& com_deepLTS_to_suppyrFRB(num_deepLTS_to_suppyrFRB,
& num_suppyrFRB),
& com_deepLTS_to_supbask(num_deepLTS_to_supbask,
& num_supbask),
& com_deepLTS_to_supaxax(num_deepLTS_to_supaxax,
& num_supaxax),
& com_deepLTS_to_supLTS(num_deepLTS_to_supLTS,
& num_supLTS),
& com_deepLTS_to_spinstell(num_deepLTS_to_spinstell,
& num_spinstell),
& com_deepLTS_to_tuftIB(num_deepLTS_to_tuftIB,
& num_tuftIB),
& com_deepLTS_to_tuftRS(num_deepLTS_to_tuftRS,
& num_tuftRS),
& com_deepLTS_to_deepbask(num_deepLTS_to_deepbask,
& num_deepbask),
& com_deepLTS_to_deepaxax(num_deepLTS_to_deepaxax,
& num_deepaxax),
& com_deepLTS_to_deepLTS(num_deepLTS_to_deepLTS,
& num_deepLTS)
INTEGER
& com_deepLTS_to_nontuftRS(num_deepLTS_to_nontuftRS,
& num_nontuftRS),
& com_TCR_to_suppyrRS(num_TCR_to_suppyrRS,
& num_suppyrRS),
& com_TCR_to_suppyrFRB(num_TCR_to_suppyrFRB,
& num_suppyrFRB),
& com_TCR_to_supbask(num_TCR_to_supbask,
& num_supbask),
& com_TCR_to_supaxax(num_TCR_to_supaxax,num_supaxax),
& com_TCR_to_spinstell(num_TCR_to_spinstell,num_spinstell),
& com_TCR_to_tuftIB(num_TCR_to_tuftIB,num_tuftIB),
& com_TCR_to_tuftRS(num_TCR_to_tuftRS,num_tuftRS),
& com_TCR_to_deepbask(num_TCR_to_deepbask,num_deepbask),
& com_TCR_to_deepaxax(num_TCR_to_deepaxax,num_deepaxax),
& com_TCR_to_nRT(num_TCR_to_nRT,num_nRT),
& com_TCR_to_nontuftRS(num_TCR_to_nontuftRS,num_nontuftRS),
& com_nRT_to_TCR(num_nRT_to_TCR,num_TCR),
& com_nRT_to_nRT(num_nRT_to_nRT,num_nRT),
& com_nontuftRS_to_suppyrRS(num_nontuftRS_to_suppyrRS,
& num_suppyrRS),
& com_nontuftRS_to_suppyrFRB(num_nontuftRS_to_suppyrFRB,
& num_suppyrFRB),
& com_nontuftRS_to_supbask(num_nontuftRS_to_supbask,
& num_supbask),
& com_nontuftRS_to_supaxax(num_nontuftRS_to_supaxax,
& num_supaxax),
& com_nontuftRS_to_supLTS(num_nontuftRS_to_supLTS,
& num_supLTS),
& com_nontuftRS_to_spinstell(num_nontuftRS_to_spinstell,
& num_spinstell),
& com_nontuftRS_to_tuftIB(num_nontuftRS_to_tuftIB,
& num_tuftIB)
INTEGER
& com_nontuftRS_to_tuftRS(num_nontuftRS_to_tuftRS,
& num_tuftRS),
& com_nontuftRS_to_deepbask(num_nontuftRS_to_deepbask,
& num_deepbask),
& com_nontuftRS_to_deepaxax(num_nontuftRS_to_deepaxax,
& num_deepaxax),
& com_nontuftRS_to_deepLTS(num_nontuftRS_to_deepLTS,
& num_deepLTS),
& com_nontuftRS_to_TCR(num_nontuftRS_to_TCR,num_TCR),
& com_nontuftRS_to_nRT(num_nontuftRS_to_nRT,num_nRT),
& com_nontuftRS_to_nontuftRS(num_nontuftRS_to_nontuftRS,
& num_nontuftRS)
c Entries in gjtable are cell a, compart. of cell a with gj,
c cell b, compart. of cell b with gj; entries not repeated,
c which means that, for given cell being integrated, table
c must be searched through cols. 1 and 3.
integer gjtable_suppyrRS(totaxgj_suppyrRS,4),
& gjtable_suppyrFRB(totaxgj_suppyrFRB,4),
& gjtable_suppyr (totaxgj_suppyr,4),
! gjtable_suppyr for suppyrRS/suppyrFRB gj, with RS cell
! in col. 1 and FRB cell in col. 3
& gjtable_supbask (totSDgj_supbask,4),
& gjtable_supaxax (1 ,4),
& gjtable_supLTS (totSDgj_supLTS,4),
& gjtable_spinstell(totaxgj_spinstell,4),
& gjtable_tuftIB (totaxgj_tuftIB,4),
& gjtable_tuftRS (totaxgj_tuftRS,4),
& gjtable_tuft (totaxgj_tuft,4),
! gjtable_tuft for tuftIB/tuftRS gj, with IB cell
! in col. 1 and RS cell in col. 3.
& gjtable_nontuftRS(totaxgj_nontuftRS,4),
& gjtable_deepbask (totSDgj_deepbask,4),
& gjtable_deepaxax (1 ,4),
& gjtable_deepLTS (totSDgj_deepLTS,4),
& gjtable_TCR (totaxgj_TCR,4),
& gjtable_nRT (totSDgj_nRT,4)
c define compartments on which gj can form
INTEGER
&table_axgjcompallow_suppyrRS(num_axgjcompallow_suppyrRS)
& /74/,
&table_axgjcompallow_suppyrFRB(num_axgjcompallow_suppyrFRB)
& /74/,
c Ectopics to superficial pyr. cells then go to #72, see
c supergj.f
&table_SDgjcompallow_supbask (num_SDgjcompallow_supbask )
& /3,4,16,17,29,30,42,43/,
&table_SDgjcompallow_supLTS (num_SDgjcompallow_supLTS )
& /3,4,16,17,29,30,42,43/,
&table_axgjcompallow_spinstell(num_axgjcompallow_spinstell)
& /59/,
c Ectopics to spiny stellates then go to #57
&table_axgjcompallow_tuftIB (num_axgjcompallow_tuftIB )
& /61/,
&table_axgjcompallow_tuftRS (num_axgjcompallow_tuftRS )
& /61/,
c Ectopics to tufted pyr. cells then go to #60
&table_axgjcompallow_nontuftRS(num_axgjcompallow_nontuftRS)
& /50/,
c Ectopics to nontufted deep pyr. cells then to #48
&table_SDgjcompallow_deepbask (num_SDgjcompallow_deepbask )
& /3,4,16,17,29,30,42,43/,
&table_SDgjcompallow_deepLTS (num_SDgjcompallow_deepLTS )
& /3,4,16,17,29,30,42,43/,
&table_axgjcompallow_TCR (num_axgjcompallow_TCR )
& /137/,
c Ectopics to TCR cells to #135
&table_SDgjcompallow_nRT (num_SDgjcompallow_nRT )
& /3,4,16,17,29,30,42,43/
integer ectr_suppyrRS, ectr_suppyrFRB, ectr_supbask,
& ectr_supaxax, ectr_supLTS, ectr_spinstell,
& ectr_tuftIB, ectr_tuftRS, ectr_nontuftRS,
& ectr_deepbask, ectr_deepaxax, ectr_deepLTS,
& ectr_TCR, ectr_nRT
real*8 field_1mm_suppyrRS, field_1mm_suppyrFRB,
& field_1mm_nontuftRS, field_1mm_tuftIB, field_1mm_tuftRS
real*8 field_2mm_suppyrRS, field_2mm_suppyrFRB,
& field_2mm_nontuftRS, field_2mm_tuftIB, field_2mm_tuftRS
c Define tables used for computing dexp:
c dexptablesmall(i) = dexp(-z), i = int (z*1000.), 0<=z<=5.
c dexptablebig (i) = dexp(-z), i = int (z*10.), 0<=z<=100.
double precision:: dexptablesmall(0:5000)
double precision:: dexptablebig (0:1000)
c Define arrays, constants, for voltages, applied currents,
c synaptic conductances, random numbers, etc.
double precision::
& V_suppyrRS (numcomp_suppyrRS, num_suppyrRS),
& V_suppyrFRB (numcomp_suppyrFRB,num_suppyrFRB),
& V_supbask (numcomp_supbask, num_supbask),
& V_supaxax (numcomp_supaxax, num_supaxax),
& V_supLTS (numcomp_supLTS, num_supLTS),
& V_spinstell (numcomp_spinstell,num_spinstell),
& V_tuftIB (numcomp_tuftIB, num_tuftIB),
& V_tuftRS (numcomp_tuftRS, num_tuftRS),
& V_nontuftRS (numcomp_nontuftRS,num_nontuftRS),
& V_deepbask (numcomp_deepbask, num_deepbask),
& V_deepaxax (numcomp_deepaxax, num_deepaxax),
& V_deepLTS (numcomp_deepLTS, num_deepLTS),
& V_TCR (numcomp_TCR, num_TCR),
& V_nRT (numcomp_nRT, num_nRT)
double precision::
& curr_suppyrRS (numcomp_suppyrRS, num_suppyrRS),
& curr_suppyrFRB (numcomp_suppyrFRB,num_suppyrFRB),
& curr_supbask (numcomp_supbask, num_supbask),
& curr_supaxax (numcomp_supaxax, num_supaxax),
& curr_supLTS (numcomp_supLTS, num_supLTS),
& curr_spinstell (numcomp_spinstell,num_spinstell),
& curr_tuftIB (numcomp_tuftIB, num_tuftIB),
& curr_tuftRS (numcomp_tuftRS, num_tuftRS),
& curr_nontuftRS (numcomp_nontuftRS,num_nontuftRS),
& curr_deepbask (numcomp_deepbask, num_deepbask),
& curr_deepaxax (numcomp_deepaxax, num_deepaxax),
& curr_deepLTS (numcomp_deepLTS, num_deepLTS),
& curr_TCR (numcomp_TCR, num_TCR),
& curr_nRT (numcomp_nRT, num_nRT)
double precision::
& gAMPA_suppyrRS (numcomp_suppyrRS, num_suppyrRS),
& gAMPA_suppyrFRB (numcomp_suppyrFRB,num_suppyrFRB),
& gAMPA_supbask (numcomp_supbask, num_supbask),
& gAMPA_supaxax (numcomp_supaxax, num_supaxax),
& gAMPA_supLTS (numcomp_supLTS, num_supLTS),
& gAMPA_spinstell (numcomp_spinstell,num_spinstell),
& gAMPA_tuftIB (numcomp_tuftIB, num_tuftIB),
& gAMPA_tuftRS (numcomp_tuftRS, num_tuftRS),
& gAMPA_nontuftRS (numcomp_nontuftRS,num_nontuftRS),
& gAMPA_deepbask (numcomp_deepbask, num_deepbask),
& gAMPA_deepaxax (numcomp_deepaxax, num_deepaxax),
& gAMPA_deepLTS (numcomp_deepLTS, num_deepLTS),
& gAMPA_TCR (numcomp_TCR, num_TCR),
& gAMPA_nRT (numcomp_nRT, num_nRT)
double precision::
& gNMDA_suppyrRS (numcomp_suppyrRS, num_suppyrRS),
& gNMDA_suppyrFRB (numcomp_suppyrFRB,num_suppyrFRB),
& gNMDA_supbask (numcomp_supbask, num_supbask),
& gNMDA_supaxax (numcomp_supaxax, num_supaxax),
& gNMDA_supLTS (numcomp_supLTS, num_supLTS),
& gNMDA_spinstell (numcomp_spinstell,num_spinstell),
& gNMDA_tuftIB (numcomp_tuftIB, num_tuftIB),
& gNMDA_tuftRS (numcomp_tuftRS, num_tuftRS),
& gNMDA_nontuftRS (numcomp_nontuftRS,num_nontuftRS),
& gNMDA_deepbask (numcomp_deepbask, num_deepbask),
& gNMDA_deepaxax (numcomp_deepaxax, num_deepaxax),
& gNMDA_deepLTS (numcomp_deepLTS, num_deepLTS),
& gNMDA_TCR (numcomp_TCR, num_TCR),
& gNMDA_nRT (numcomp_nRT, num_nRT)
double precision::
& gGABA_A_suppyrRS (numcomp_suppyrRS, num_suppyrRS),
& gGABA_A_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
& gGABA_A_supbask (numcomp_supbask, num_supbask),
& gGABA_A_supaxax (numcomp_supaxax, num_supaxax),
& gGABA_A_supLTS (numcomp_supLTS, num_supLTS),
& gGABA_A_spinstell(numcomp_spinstell,num_spinstell),
& gGABA_A_tuftIB (numcomp_tuftIB, num_tuftIB),
& gGABA_A_tuftRS (numcomp_tuftRS, num_tuftRS),
& gGABA_A_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
& gGABA_A_deepbask (numcomp_deepbask, num_deepbask),
& gGABA_A_deepaxax (numcomp_deepaxax, num_deepaxax),
& gGABA_A_deepLTS (numcomp_deepLTS, num_deepLTS),
& gGABA_A_TCR (numcomp_TCR, num_TCR),
& gGABA_A_nRT (numcomp_nRT, num_nRT)
! define membrane and Ca state variables that must be passed
! to subroutines
real*8 chi_suppyrRS(numcomp_suppyrRS,num_suppyrRS)
real*8 mnaf_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
& mnap_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
x hnaf_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
x mkdr_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
x mka_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
x hka_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
x mk2_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
x hk2_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
x mkm_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
x mkc_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
x mkahp_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
x mcat_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
x hcat_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
x mcal_suppyrRS(numcomp_suppyrRS,num_suppyrRS),
x mar_suppyrRS(numcomp_suppyrRS,num_suppyrRS)
real*8 chi_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB)
real*8 mnaf_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
& mnap_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
x hnaf_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
x mkdr_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
x mka_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
x hka_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
x mk2_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
x hk2_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
x mkm_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
x mkc_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
x mkahp_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
x mcat_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
x hcat_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
x mcal_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB),
x mar_suppyrFRB(numcomp_suppyrFRB,num_suppyrFRB)
real*8 chi_supbask (numcomp_supbask ,num_supbask )
real*8 mnaf_supbask (numcomp_supbask ,num_supbask ),
& mnap_supbask (numcomp_supbask ,num_supbask ),
x hnaf_supbask (numcomp_supbask ,num_supbask ),
x mkdr_supbask (numcomp_supbask ,num_supbask ),
x mka_supbask (numcomp_supbask ,num_supbask ),
x hka_supbask (numcomp_supbask ,num_supbask ),
x mk2_supbask (numcomp_supbask ,num_supbask ),
x hk2_supbask (numcomp_supbask ,num_supbask ),
x mkm_supbask (numcomp_supbask ,num_supbask ),
x mkc_supbask (numcomp_supbask ,num_supbask ),
x mkahp_supbask (numcomp_supbask ,num_supbask ),
x mcat_supbask (numcomp_supbask ,num_supbask ),
x hcat_supbask (numcomp_supbask ,num_supbask ),
x mcal_supbask (numcomp_supbask ,num_supbask ),
x mar_supbask (numcomp_supbask ,num_supbask )
real*8 chi_supaxax (numcomp_supaxax ,num_supaxax )
real*8 mnaf_supaxax (numcomp_supaxax ,num_supaxax ),
& mnap_supaxax (numcomp_supaxax ,num_supaxax ),
x hnaf_supaxax (numcomp_supaxax ,num_supaxax ),
x mkdr_supaxax (numcomp_supaxax ,num_supaxax ),
x mka_supaxax (numcomp_supaxax ,num_supaxax ),
x hka_supaxax (numcomp_supaxax ,num_supaxax ),
x mk2_supaxax (numcomp_supaxax ,num_supaxax ),
x hk2_supaxax (numcomp_supaxax ,num_supaxax ),
x mkm_supaxax (numcomp_supaxax ,num_supaxax ),
x mkc_supaxax (numcomp_supaxax ,num_supaxax ),
x mkahp_supaxax (numcomp_supaxax ,num_supaxax ),
x mcat_supaxax (numcomp_supaxax ,num_supaxax ),
x hcat_supaxax (numcomp_supaxax ,num_supaxax ),
x mcal_supaxax (numcomp_supaxax ,num_supaxax ),
x mar_supaxax (numcomp_supaxax ,num_supaxax )
real*8 chi_supLTS(numcomp_supLTS,num_supLTS)
real*8 mnaf_supLTS(numcomp_supLTS,num_supLTS),
& mnap_supLTS(numcomp_supLTS,num_supLTS),
x hnaf_supLTS(numcomp_supLTS,num_supLTS),
x mkdr_supLTS(numcomp_supLTS,num_supLTS),
x mka_supLTS(numcomp_supLTS,num_supLTS),
x hka_supLTS(numcomp_supLTS,num_supLTS),
x mk2_supLTS(numcomp_supLTS,num_supLTS),
x hk2_supLTS(numcomp_supLTS,num_supLTS),
x mkm_supLTS(numcomp_supLTS,num_supLTS),
x mkc_supLTS(numcomp_supLTS,num_supLTS),
x mkahp_supLTS(numcomp_supLTS,num_supLTS),
x mcat_supLTS(numcomp_supLTS,num_supLTS),
x hcat_supLTS(numcomp_supLTS,num_supLTS),
x mcal_supLTS(numcomp_supLTS,num_supLTS),
x mar_supLTS(numcomp_supLTS,num_supLTS)
real*8 chi_spinstell(numcomp_spinstell,num_spinstell)
real*8 mnaf_spinstell(numcomp_spinstell,num_spinstell),
& mnap_spinstell(numcomp_spinstell,num_spinstell),
x hnaf_spinstell(numcomp_spinstell,num_spinstell),
x mkdr_spinstell(numcomp_spinstell,num_spinstell),
x mka_spinstell(numcomp_spinstell,num_spinstell),
x hka_spinstell(numcomp_spinstell,num_spinstell),
x mk2_spinstell(numcomp_spinstell,num_spinstell),
x hk2_spinstell(numcomp_spinstell,num_spinstell),
x mkm_spinstell(numcomp_spinstell,num_spinstell),
x mkc_spinstell(numcomp_spinstell,num_spinstell),
x mkahp_spinstell(numcomp_spinstell,num_spinstell),
x mcat_spinstell(numcomp_spinstell,num_spinstell),
x hcat_spinstell(numcomp_spinstell,num_spinstell),
x mcal_spinstell(numcomp_spinstell,num_spinstell),
x mar_spinstell(numcomp_spinstell,num_spinstell)
real*8 chi_tuftIB(numcomp_tuftIB,num_tuftIB)
real*8 mnaf_tuftIB(numcomp_tuftIB,num_tuftIB),
& mnap_tuftIB(numcomp_tuftIB,num_tuftIB),
x hnaf_tuftIB(numcomp_tuftIB,num_tuftIB),
x mkdr_tuftIB(numcomp_tuftIB,num_tuftIB),
x mka_tuftIB(numcomp_tuftIB,num_tuftIB),
x hka_tuftIB(numcomp_tuftIB,num_tuftIB),
x mk2_tuftIB(numcomp_tuftIB,num_tuftIB),
x hk2_tuftIB(numcomp_tuftIB,num_tuftIB),
x mkm_tuftIB(numcomp_tuftIB,num_tuftIB),
x mkc_tuftIB(numcomp_tuftIB,num_tuftIB),
x mkahp_tuftIB(numcomp_tuftIB,num_tuftIB),
x mcat_tuftIB(numcomp_tuftIB,num_tuftIB),
x hcat_tuftIB(numcomp_tuftIB,num_tuftIB),
x mcal_tuftIB(numcomp_tuftIB,num_tuftIB),
x mar_tuftIB(numcomp_tuftIB,num_tuftIB)
real*8 chi_tuftRS(numcomp_tuftRS,num_tuftRS)
real*8 mnaf_tuftRS(numcomp_tuftRS,num_tuftRS),
& mnap_tuftRS(numcomp_tuftRS,num_tuftRS),
x hnaf_tuftRS(numcomp_tuftRS,num_tuftRS),
x mkdr_tuftRS(numcomp_tuftRS,num_tuftRS),
x mka_tuftRS(numcomp_tuftRS,num_tuftRS),
x hka_tuftRS(numcomp_tuftRS,num_tuftRS),
x mk2_tuftRS(numcomp_tuftRS,num_tuftRS),
x hk2_tuftRS(numcomp_tuftRS,num_tuftRS),
x mkm_tuftRS(numcomp_tuftRS,num_tuftRS),
x mkc_tuftRS(numcomp_tuftRS,num_tuftRS),
x mkahp_tuftRS(numcomp_tuftRS,num_tuftRS),
x mcat_tuftRS(numcomp_tuftRS,num_tuftRS),
x hcat_tuftRS(numcomp_tuftRS,num_tuftRS),
x mcal_tuftRS(numcomp_tuftRS,num_tuftRS),
x mar_tuftRS(numcomp_tuftRS,num_tuftRS)
real*8 chi_nontuftRS(numcomp_nontuftRS,num_nontuftRS)
real*8 mnaf_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
& mnap_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
x hnaf_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
x mkdr_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
x mka_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
x hka_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
x mk2_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
x hk2_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
x mkm_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
x mkc_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
x mkahp_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
x mcat_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
x hcat_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
x mcal_nontuftRS(numcomp_nontuftRS,num_nontuftRS),
x mar_nontuftRS(numcomp_nontuftRS,num_nontuftRS)
real*8 chi_deepbask(numcomp_deepbask,num_deepbask)
real*8 mnaf_deepbask(numcomp_deepbask,num_deepbask),
& mnap_deepbask(numcomp_deepbask,num_deepbask),
x hnaf_deepbask(numcomp_deepbask,num_deepbask),
x mkdr_deepbask(numcomp_deepbask,num_deepbask),
x mka_deepbask(numcomp_deepbask,num_deepbask),
x hka_deepbask(numcomp_deepbask,num_deepbask),
x mk2_deepbask(numcomp_deepbask,num_deepbask),
x hk2_deepbask(numcomp_deepbask,num_deepbask),
x mkm_deepbask(numcomp_deepbask,num_deepbask),
x mkc_deepbask(numcomp_deepbask,num_deepbask),
x mkahp_deepbask(numcomp_deepbask,num_deepbask),
x mcat_deepbask(numcomp_deepbask,num_deepbask),
x hcat_deepbask(numcomp_deepbask,num_deepbask),
x mcal_deepbask(numcomp_deepbask,num_deepbask),
x mar_deepbask(numcomp_deepbask,num_deepbask)
real*8 chi_deepaxax(numcomp_deepaxax,num_deepaxax)
real*8 mnaf_deepaxax(numcomp_deepaxax,num_deepaxax),
& mnap_deepaxax(numcomp_deepaxax,num_deepaxax),
x hnaf_deepaxax(numcomp_deepaxax,num_deepaxax),
x mkdr_deepaxax(numcomp_deepaxax,num_deepaxax),
x mka_deepaxax(numcomp_deepaxax,num_deepaxax),
x hka_deepaxax(numcomp_deepaxax,num_deepaxax),
x mk2_deepaxax(numcomp_deepaxax,num_deepaxax),
x hk2_deepaxax(numcomp_deepaxax,num_deepaxax),
x mkm_deepaxax(numcomp_deepaxax,num_deepaxax),
x mkc_deepaxax(numcomp_deepaxax,num_deepaxax),
x mkahp_deepaxax(numcomp_deepaxax,num_deepaxax),
x mcat_deepaxax(numcomp_deepaxax,num_deepaxax),
x hcat_deepaxax(numcomp_deepaxax,num_deepaxax),
x mcal_deepaxax(numcomp_deepaxax,num_deepaxax),
x mar_deepaxax(numcomp_deepaxax,num_deepaxax)
real*8 chi_deepLTS(numcomp_deepLTS,num_deepLTS)
real*8 mnaf_deepLTS(numcomp_deepLTS,num_deepLTS),
& mnap_deepLTS(numcomp_deepLTS,num_deepLTS),
x hnaf_deepLTS(numcomp_deepLTS,num_deepLTS),
x mkdr_deepLTS(numcomp_deepLTS,num_deepLTS),
x mka_deepLTS(numcomp_deepLTS,num_deepLTS),
x hka_deepLTS(numcomp_deepLTS,num_deepLTS),
x mk2_deepLTS(numcomp_deepLTS,num_deepLTS),
x hk2_deepLTS(numcomp_deepLTS,num_deepLTS),
x mkm_deepLTS(numcomp_deepLTS,num_deepLTS),
x mkc_deepLTS(numcomp_deepLTS,num_deepLTS),
x mkahp_deepLTS(numcomp_deepLTS,num_deepLTS),
x mcat_deepLTS(numcomp_deepLTS,num_deepLTS),
x hcat_deepLTS(numcomp_deepLTS,num_deepLTS),
x mcal_deepLTS(numcomp_deepLTS,num_deepLTS),
x mar_deepLTS(numcomp_deepLTS,num_deepLTS)
real*8 chi_tcr(numcomp_tcr,num_tcr)
real*8 mnaf_tcr(numcomp_tcr,num_tcr),
& mnap_tcr(numcomp_tcr,num_tcr),
x hnaf_tcr(numcomp_tcr,num_tcr),
x mkdr_tcr(numcomp_tcr,num_tcr),
x mka_tcr(numcomp_tcr,num_tcr),
x hka_tcr(numcomp_tcr,num_tcr),
x mk2_tcr(numcomp_tcr,num_tcr),
x hk2_tcr(numcomp_tcr,num_tcr),
x mkm_tcr(numcomp_tcr,num_tcr),
x mkc_tcr(numcomp_tcr,num_tcr),
x mkahp_tcr(numcomp_tcr,num_tcr),
x mcat_tcr(numcomp_tcr,num_tcr),
x hcat_tcr(numcomp_tcr,num_tcr),
x mcal_tcr(numcomp_tcr,num_tcr),
x mar_tcr(numcomp_tcr,num_tcr)
real*8 chi_nRT(numcomp_nRT,num_nRT)
real*8 mnaf_nRT(numcomp_nRT,num_nRT),
& mnap_nRT(numcomp_nRT,num_nRT),
x hnaf_nRT(numcomp_nRT,num_nRT),
x mkdr_nRT(numcomp_nRT,num_nRT),
x mka_nRT(numcomp_nRT,num_nRT),
x hka_nRT(numcomp_nRT,num_nRT),
x mk2_nRT(numcomp_nRT,num_nRT),
x hk2_nRT(numcomp_nRT,num_nRT),
x mkm_nRT(numcomp_nRT,num_nRT),
x mkc_nRT(numcomp_nRT,num_nRT),
x mkahp_nRT(numcomp_nRT,num_nRT),
x mcat_nRT(numcomp_nRT,num_nRT),
x hcat_nRT(numcomp_nRT,num_nRT),
x mcal_nRT(numcomp_nRT,num_nRT),
x mar_nRT(numcomp_nRT,num_nRT)
double precision
& ranvec_suppyrRS (num_suppyrRS),
& ranvec_suppyrFRB (num_suppyrFRB),
& ranvec_supbask (num_supbask),
& ranvec_supaxax (num_supaxax),
& ranvec_supLTS (num_supLTS),
& ranvec_spinstell (num_spinstell),
& ranvec_tuftIB (num_tuftIB),
& ranvec_tuftRS (num_tuftRS),
& ranvec_nontuftRS (num_nontuftRS),
& ranvec_deepbask (num_deepbask),
& ranvec_deepaxax (num_deepaxax),
& ranvec_deepLTS (num_deepLTS),
& ranvec_TCR (num_TCR),
& ranvec_nRT (num_nRT),
& seed /137.d0/
c Define arrays for distal axon voltages which will be shared
c between nodes.
double precision::
& distal_axon_suppyrRS (num_suppyrRS),
! & distal_axon_suppyrFRB (num_suppyrFRB),
! make all distal_axon have the length max (num_celltype)
& distal_axon_suppyrFRB (num_suppyrRS ),
& distal_axon_supbask (num_suppyrRS),
& distal_axon_supaxax (num_suppyrRS),
& distal_axon_supLTS (num_suppyrRS),
& distal_axon_spinstell (num_suppyrRS),
& distal_axon_tuftIB (num_suppyrRS),
& distal_axon_tuftRS (num_suppyrRS),
& distal_axon_nontuftRS (num_suppyrRS),
& distal_axon_deepbask (num_suppyrRS),
& distal_axon_deepaxax (num_suppyrRS),
& distal_axon_deepLTS (num_suppyrRS),
& distal_axon_TCR (num_suppyrRS),
& distal_axon_nRT (num_suppyrRS),
& distal_axon_global (14000) !14000 = 14 x num_suppyrRS
! distal_axon_global will be concatenation of individual
! distal_axon vectors
! positions 1 - 1000 suppyrRS axons
! 1001 - 2000 suppyrFRB axons
! 2001 - 3000 supbask
! 3001 - 4000 supaxax
! 4001 - 5000 supLTS
! 5001 - 6000 spinstell
! 6001 - 7000 tuftIB
! 7001 - 8000 tuftRS
! 8001 - 9000 nontuftRS
! 9001 - 10000 deepbask
! 10001 - 11000 deepaxax
! 11001 - 12000 deepLTS
! 12001 - 13000 TCR
! 13001 - 14000 nRT
! define arrays for axonal voltges, needed for mixed gj
double precision ::
& vax_suppyrRS (num_suppyrRS), vax_suppyrFRB (num_suppyrFRB),
& vax_tuftIB (num_tuftIB), vax_tuftRS (num_tuftRS)
double precision::
& outtime_suppyrRS (5000, num_suppyrRS),
& outtime_suppyrFRB (5000, num_suppyrFRB),
& outtime_supbask (5000, num_supbask),
& outtime_supaxax (5000, num_supaxax),
& outtime_supLTS (5000, num_supLTS),
& outtime_spinstell (5000, num_spinstell),
& outtime_tuftIB (5000, num_tuftIB),
& outtime_tuftRS (5000, num_tuftRS),
& outtime_nontuftRS (5000, num_nontuftRS),
& outtime_deepbask (5000, num_deepbask),
& outtime_deepaxax (5000, num_deepaxax),
& outtime_deepLTS (5000, num_deepLTS),
& outtime_TCR (5000, num_TCR),
& outtime_nRT (5000, num_nRT)
INTEGER
& outctr_suppyrRS (num_suppyrRS),
& outctr_suppyrFRB (num_suppyrFRB),
& outctr_supbask (num_supbask),
& outctr_supaxax (num_supaxax),
& outctr_supLTS (num_supLTS),
& outctr_spinstell (num_spinstell),
& outctr_tuftIB (num_tuftIB),
& outctr_tuftRS (num_tuftRS),
& outctr_nontuftRS (num_nontuftRS),
& outctr_deepbask (num_deepbask),
& outctr_deepaxax (num_deepaxax),
& outctr_deepLTS (num_deepLTS),
& outctr_TCR (num_TCR),
& outctr_nRT (num_nRT)
REAL*8 gettime, time1, time2, time, timtot, gettime
REAL*8 presyntime, delta, dexparg, dexparg1, dexparg2
INTEGER thisno, display /0/, O
integer suppyrRS_base/-1/, suppyrFRB_base/999/,
x supbask_base/1049/, supaxax_base/1139/,
x supLTS_base/1229/, spinstell_base/1319/,
x tuftIB_base/1559/, tuftRS_base/2359/,
x nontuftRS_base/2559/, deepbask_base/3059/,
x deepaxax_base/3159/, deepLTS_base/3259/,
x TCR_base/3359/, nRT_base/3459/
REAL*8 z, z1, z2, outrcd(20)
c START EXECUTION PHASE
include 'mpif.h'
call mpi_init (info)
call mpi_comm_rank(mpi_comm_world, thisno, info)
call mpi_comm_size(mpi_comm_world, nodes , info)
time1 = gettime()
do i = 1, 5000
do j = 1, num_suppyrRS
outtime_suppyrRS(i,j) = -1.d5
end do ! j
do j = 1, num_suppyrFRB
outtime_suppyrFRB(i,j) = -1.d5
end do ! j
do j = 1, num_supbask
outtime_supbask(i,j) = -1.d5
end do ! j
do j = 1, num_supaxax
outtime_supaxax(i,j) = -1.d5
end do ! j
do j = 1, num_supLTS
outtime_supLTS(i,j) = -1.d5
end do ! j
do j = 1, num_spinstell
outtime_spinstell(i,j) = -1.d5
end do ! j
do j = 1, num_tuftIB
outtime_tuftIB(i,j) = -1.d5
end do ! j
do j = 1, num_tuftRS
outtime_tuftRS(i,j) = -1.d5
end do ! j
do j = 1, num_nontuftRS
outtime_nontuftRS(i,j) = -1.d5
end do ! j
do j = 1, num_deepbask
outtime_deepbask(i,j) = -1.d5
end do ! j
do j = 1, num_deepaxax
outtime_deepaxax(i,j) = -1.d5
end do ! j
do j = 1, num_deepLTS
outtime_deepLTS(i,j) = -1.d5
end do ! j
do j = 1, num_TCR
outtime_TCR(i,j) = -1.d5
end do ! j
do j = 1, num_nRT
outtime_nRT(i,j) = -1.d5
end do ! j
end do ! do i
! timtot = 750.d0
! timtot = 1600.d0
timtot = 0.5d0 ! projected to take 1 minute
! timtot = 10.d0
c Setup tables for calculating exponentials
call dexptablesmall_setup (dexptablesmall)
call dexptablebig_setup (dexptablebig)
c Compartments contacted by axoaxonic interneurons are IS only
do i = 1, num_suppyrRS
do j = 1, num_supaxax_to_suppyrRS
com_supaxax_to_suppyrRS (j,i) = 69
end do
end do
do i = 1, num_suppyrFRB
do j = 1, num_supaxax_to_suppyrFRB
com_supaxax_to_suppyrFRB(j,i) = 69
end do
end do
do i = 1, num_spinstell
do j = 1, num_supaxax_to_spinstell
com_supaxax_to_spinstell(j,i) = 54
end do
end do
do i = 1, num_tuftIB
do j = 1, num_supaxax_to_tuftIB
com_supaxax_to_tuftIB (j,i) = 56
end do
end do
do i = 1, num_tuftRS
do j = 1, num_supaxax_to_tuftRS
com_supaxax_to_tuftRS (j,i) = 56
end do
end do
do i = 1, num_nontuftRS
do j = 1, num_supaxax_to_nontuftRS
com_supaxax_to_nontuftRS (j,i) = 45
end do
end do
do i = 1, num_suppyrRS
do j = 1, num_deepaxax_to_suppyrRS
com_deepaxax_to_suppyrRS (j,i) = 69
end do
end do
do i = 1, num_suppyrFRB
do j = 1, num_deepaxax_to_suppyrFRB
com_deepaxax_to_suppyrFRB (j,i) = 69
end do
end do
do i = 1, num_spinstell
do j = 1, num_deepaxax_to_spinstell
com_deepaxax_to_spinstell (j,i) = 54
end do
end do
do i = 1, num_tuftIB
do j = 1, num_deepaxax_to_tuftIB
com_deepaxax_to_tuftIB (j,i) = 56
end do
end do
do i = 1, num_tuftRS
do j = 1, num_deepaxax_to_tuftRS
com_deepaxax_to_tuftRS (j,i) = 56
end do
end do
do i = 1, num_nontuftRS
do j = 1, num_deepaxax_to_nontuftRS
com_deepaxax_to_nontuftRS (j,i) = 45
end do
end do
c End section on making axoaxonic cells connect to IS's
c Construct synaptic connectivity tables
display = 0
CALL synaptic_map_construct (thisno,
& num_suppyrRS, num_suppyrRS,
& map_suppyrRS_to_suppyrRS,
& num_suppyrRS_to_suppyrRS, display)
CALL synaptic_map_construct (thisno,
& num_suppyrRS, num_suppyrFRB,
& map_suppyrRS_to_suppyrFRB,
& num_suppyrRS_to_suppyrFRB, display)
CALL synaptic_map_construct (thisno,
& num_suppyrRS, num_supbask,
& map_suppyrRS_to_supbask,
& num_suppyrRS_to_supbask, display)
CALL synaptic_map_construct (thisno,
& num_suppyrRS, num_supaxax,
& map_suppyrRS_to_supaxax,
& num_suppyrRS_to_supaxax, display)
CALL synaptic_map_construct (thisno,
& num_suppyrRS, num_supLTS,
& map_suppyrRS_to_supLTS,
& num_suppyrRS_to_supLTS, display)
CALL synaptic_map_construct (thisno,
& num_suppyrRS, num_spinstell,
& map_suppyrRS_to_spinstell,
& num_suppyrRS_to_spinstell, display)
CALL synaptic_map_construct (thisno,
& num_suppyrRS, num_tuftIB,
& map_suppyrRS_to_tuftIB,
& num_suppyrRS_to_tuftIB, display)
CALL synaptic_map_construct (thisno,
& num_suppyrRS, num_tuftRS,
& map_suppyrRS_to_tuftRS,
& num_suppyrRS_to_tuftRS, display)
CALL synaptic_map_construct (thisno,
& num_suppyrRS, num_deepbask,
& map_suppyrRS_to_deepbask,
& num_suppyrRS_to_deepbask, display)
CALL synaptic_map_construct (thisno,
& num_suppyrRS, num_deepaxax,
& map_suppyrRS_to_deepaxax,
& num_suppyrRS_to_deepaxax, display)
CALL synaptic_map_construct (thisno,
& num_suppyrRS, num_deepLTS,
& map_suppyrRS_to_deepLTS,
& num_suppyrRS_to_deepLTS, display)
CALL synaptic_map_construct (thisno,
& num_suppyrRS, num_nontuftRS,
& map_suppyrRS_to_nontuftRS,
& num_suppyrRS_to_nontuftRS, display)
CALL synaptic_map_construct (thisno,
& num_suppyrFRB, num_suppyrRS,
& map_suppyrFRB_to_suppyrRS,
& num_suppyrFRB_to_suppyrRS, display)
CALL synaptic_map_construct (thisno,
& num_suppyrFRB, num_suppyrFRB,
& map_suppyrFRB_to_suppyrFRB,
& num_suppyrFRB_to_suppyrFRB, display)
CALL synaptic_map_construct (thisno,
& num_suppyrFRB, num_supbask,
& map_suppyrFRB_to_supbask,
& num_suppyrFRB_to_supbask, display)
CALL synaptic_map_construct (thisno,
& num_suppyrFRB, num_supaxax,
& map_suppyrFRB_to_supaxax,
& num_suppyrFRB_to_supaxax, display)
CALL synaptic_map_construct (thisno,
& num_suppyrFRB, num_supLTS,
& map_suppyrFRB_to_supLTS,
& num_suppyrFRB_to_supLTS, display)
CALL synaptic_map_construct (thisno,
& num_suppyrFRB, num_spinstell,
& map_suppyrFRB_to_spinstell,
& num_suppyrFRB_to_spinstell, display)
CALL synaptic_map_construct (thisno,
& num_suppyrFRB, num_tuftIB,
& map_suppyrFRB_to_tuftIB,
& num_suppyrFRB_to_tuftIB, display)
CALL synaptic_map_construct (thisno,
& num_suppyrFRB, num_tuftRS,
& map_suppyrFRB_to_tuftRS,
& num_suppyrFRB_to_tuftRS, display)
CALL synaptic_map_construct (thisno,
& num_suppyrFRB, num_deepbask,
& map_suppyrFRB_to_deepbask,
& num_suppyrFRB_to_deepbask, display)
CALL synaptic_map_construct (thisno,
& num_suppyrFRB, num_deepaxax,
& map_suppyrFRB_to_deepaxax,
& num_suppyrFRB_to_deepaxax, display)
CALL synaptic_map_construct (thisno,
& num_suppyrFRB, num_deepLTS,
& map_suppyrFRB_to_deepLTS,
& num_suppyrFRB_to_deepLTS, display)
CALL synaptic_map_construct (thisno,
& num_suppyrFRB, num_nontuftRS,
& map_suppyrFRB_to_nontuftRS,
& num_suppyrFRB_to_nontuftRS, display)
CALL synaptic_map_construct (thisno,
& num_supbask, num_suppyrRS,
& map_supbask_to_suppyrRS,
& num_supbask_to_suppyrRS, display)
CALL synaptic_map_construct (thisno,
& num_supbask, num_suppyrFRB,
& map_supbask_to_suppyrFRB,
& num_supbask_to_suppyrFRB, display)
CALL synaptic_map_construct (thisno,
& num_supbask, num_supbask,
& map_supbask_to_supbask,
& num_supbask_to_supbask, display)
CALL synaptic_map_construct (thisno,
& num_supbask, num_supaxax,
& map_supbask_to_supaxax,
& num_supbask_to_supaxax, display)
CALL synaptic_map_construct (thisno,
& num_supbask, num_supLTS,
& map_supbask_to_supLTS,
& num_supbask_to_supLTS, display)
CALL synaptic_map_construct (thisno,
& num_supbask, num_spinstell,
& map_supbask_to_spinstell,
& num_supbask_to_spinstell, display)
CALL synaptic_map_construct (thisno,
& num_supaxax, num_suppyrRS,
& map_supaxax_to_suppyrRS,
& num_supaxax_to_suppyrRS, display)
CALL synaptic_map_construct (thisno,
& num_supaxax, num_suppyrFRB,
& map_supaxax_to_suppyrFRB,
& num_supaxax_to_suppyrFRB, display)
CALL synaptic_map_construct (thisno,
& num_supaxax, num_spinstell,
& map_supaxax_to_spinstell,
& num_supaxax_to_spinstell, display)
CALL synaptic_map_construct (thisno,
& num_supaxax, num_tuftIB,
& map_supaxax_to_tuftIB,
& num_supaxax_to_tuftIB, display)
CALL synaptic_map_construct (thisno,
& num_supaxax, num_tuftRS,
& map_supaxax_to_tuftRS,
& num_supaxax_to_tuftRS, display)
CALL synaptic_map_construct (thisno,
& num_supaxax, num_nontuftRS,
& map_supaxax_to_nontuftRS,
& num_supaxax_to_nontuftRS, display)
CALL synaptic_map_construct (thisno,
& num_supLTS, num_suppyrRS,
& map_supLTS_to_suppyrRS,
& num_supLTS_to_suppyrRS , display)
CALL synaptic_map_construct (thisno,
& num_supLTS, num_suppyrFRB,
& map_supLTS_to_suppyrFRB,
& num_supLTS_to_suppyrFRB, display)
CALL synaptic_map_construct (thisno,
& num_supLTS, num_supbask,
& map_supLTS_to_supbask,
& num_supLTS_to_supbask, display)
CALL synaptic_map_construct (thisno,
& num_supLTS, num_supaxax,
& map_supLTS_to_supaxax,
& num_supLTS_to_supaxax, display)
CALL synaptic_map_construct (thisno,
& num_supLTS, num_supLTS,
& map_supLTS_to_supLTS,
& num_supLTS_to_supLTS, display)
CALL synaptic_map_construct (thisno,
& num_supLTS, num_spinstell,
& map_supLTS_to_spinstell,
& num_supLTS_to_spinstell, display)
CALL synaptic_map_construct (thisno,
& num_supLTS, num_tuftIB,
& map_supLTS_to_tuftIB,
& num_supLTS_to_tuftIB , display)
CALL synaptic_map_construct (thisno,
& num_supLTS, num_tuftRS,
& map_supLTS_to_tuftRS,
& num_supLTS_to_tuftRS , display)
CALL synaptic_map_construct (thisno,
& num_supLTS, num_deepbask,
& map_supLTS_to_deepbask,
& num_supLTS_to_deepbask , display)
CALL synaptic_map_construct (thisno,
& num_supLTS, num_deepaxax,
& map_supLTS_to_deepaxax,
& num_supLTS_to_deepaxax , display)
CALL synaptic_map_construct (thisno,
& num_supLTS, num_deepLTS,
& map_supLTS_to_deepLTS,
& num_supLTS_to_deepLTS, display)
CALL synaptic_map_construct (thisno,
& num_supLTS, num_nontuftRS,
& map_supLTS_to_nontuftRS,
& num_supLTS_to_nontuftRS, display)
CALL synaptic_map_construct (thisno,
& num_spinstell, num_suppyrRS,
& map_spinstell_to_suppyrRS,
& num_spinstell_to_suppyrRS, display)
CALL synaptic_map_construct (thisno,
& num_spinstell, num_suppyrFRB,
& map_spinstell_to_suppyrFRB,
& num_spinstell_to_suppyrFRB, display)
CALL synaptic_map_construct (thisno,
& num_spinstell, num_supbask,
& map_spinstell_to_supbask,
& num_spinstell_to_supbask, display)
CALL synaptic_map_construct (thisno,
& num_spinstell, num_supaxax,
& map_spinstell_to_supaxax,
& num_spinstell_to_supaxax, display)
CALL synaptic_map_construct (thisno,
& num_spinstell, num_supLTS,
& map_spinstell_to_supLTS,
& num_spinstell_to_supLTS, display)
CALL synaptic_map_construct (thisno,
& num_spinstell, num_spinstell,
& map_spinstell_to_spinstell,
& num_spinstell_to_spinstell, display)
CALL synaptic_map_construct (thisno,
& num_spinstell, num_tuftIB,
& map_spinstell_to_tuftIB,
& num_spinstell_to_tuftIB, display)
CALL synaptic_map_construct (thisno,
& num_spinstell, num_tuftRS,
& map_spinstell_to_tuftRS,
& num_spinstell_to_tuftRS, display)
CALL synaptic_map_construct (thisno,
& num_spinstell, num_deepbask,
& map_spinstell_to_deepbask,
& num_spinstell_to_deepbask, display)
CALL synaptic_map_construct (thisno,
& num_spinstell, num_deepaxax,
& map_spinstell_to_deepaxax,
& num_spinstell_to_deepaxax, display)
CALL synaptic_map_construct (thisno,
& num_spinstell, num_deepLTS,
& map_spinstell_to_deepLTS,
& num_spinstell_to_deepLTS, display)
CALL synaptic_map_construct (thisno,
& num_spinstell, num_nontuftRS,
& map_spinstell_to_nontuftRS,
& num_spinstell_to_nontuftRS, display)
CALL synaptic_map_construct (thisno,
& num_tuftIB, num_suppyrRS,
& map_tuftIB_to_suppyrRS,
& num_tuftIB_to_suppyrRS, display)
CALL synaptic_map_construct (thisno,
& num_tuftIB, num_suppyrFRB,
& map_tuftIB_to_suppyrFRB,
& num_tuftIB_to_suppyrFRB, display)
CALL synaptic_map_construct (thisno,
& num_tuftIB, num_supbask,
& map_tuftIB_to_supbask,
& num_tuftIB_to_supbask, display)
CALL synaptic_map_construct (thisno,
& num_tuftIB, num_supaxax,
& map_tuftIB_to_supaxax,
& num_tuftIB_to_supaxax, display)
CALL synaptic_map_construct (thisno,
& num_tuftIB, num_supLTS,
& map_tuftIB_to_supLTS,
& num_tuftIB_to_supLTS, display)
CALL synaptic_map_construct (thisno,
& num_tuftIB, num_spinstell,
& map_tuftIB_to_spinstell,
& num_tuftIB_to_spinstell, display)
CALL synaptic_map_construct (thisno,
& num_tuftIB, num_tuftIB ,
& map_tuftIB_to_tuftIB ,
& num_tuftIB_to_tuftIB , display)
CALL synaptic_map_construct (thisno,
& num_tuftIB, num_tuftRS ,
& map_tuftIB_to_tuftRS ,
& num_tuftIB_to_tuftRS , display)
CALL synaptic_map_construct (thisno,
& num_tuftIB, num_deepbask ,
& map_tuftIB_to_deepbask ,
& num_tuftIB_to_deepbask , display)
CALL synaptic_map_construct (thisno,
& num_tuftIB, num_deepaxax ,
& map_tuftIB_to_deepaxax ,
& num_tuftIB_to_deepaxax , display)
CALL synaptic_map_construct (thisno,
& num_tuftIB, num_deepLTS ,
& map_tuftIB_to_deepLTS ,
& num_tuftIB_to_deepLTS , display)
CALL synaptic_map_construct (thisno,
& num_tuftIB, num_nontuftRS,
& map_tuftIB_to_nontuftRS,
& num_tuftIB_to_nontuftRS, display)
CALL synaptic_map_construct (thisno,
& num_tuftRS, num_suppyrRS ,
& map_tuftRS_to_suppyrRS ,
& num_tuftRS_to_suppyrRS , display)
CALL synaptic_map_construct (thisno,
& num_tuftRS, num_suppyrFRB,
& map_tuftRS_to_suppyrFRB,
& num_tuftRS_to_suppyrFRB, display)
CALL synaptic_map_construct (thisno,
& num_tuftRS, num_supbask ,
& map_tuftRS_to_supbask ,
& num_tuftRS_to_supbask , display)
CALL synaptic_map_construct (thisno,
& num_tuftRS, num_supaxax ,
& map_tuftRS_to_supaxax ,
& num_tuftRS_to_supaxax , display)
CALL synaptic_map_construct (thisno,
& num_tuftRS, num_supLTS ,
& map_tuftRS_to_supLTS ,
& num_tuftRS_to_supLTS , display)
CALL synaptic_map_construct (thisno,
& num_tuftRS, num_spinstell,
& map_tuftRS_to_spinstell,
& num_tuftRS_to_spinstell, display)
CALL synaptic_map_construct (thisno,
& num_tuftRS, num_tuftIB ,
& map_tuftRS_to_tuftIB ,
& num_tuftRS_to_tuftIB , display)
CALL synaptic_map_construct (thisno,
& num_tuftRS, num_tuftRS ,
& map_tuftRS_to_tuftRS ,
& num_tuftRS_to_tuftRS , display)
CALL synaptic_map_construct (thisno,
& num_tuftRS, num_deepbask ,
& map_tuftRS_to_deepbask ,
& num_tuftRS_to_deepbask , display)
CALL synaptic_map_construct (thisno,
& num_tuftRS, num_deepaxax ,
& map_tuftRS_to_deepaxax ,
& num_tuftRS_to_deepaxax , display)
CALL synaptic_map_construct (thisno,
& num_tuftRS, num_deepLTS ,
& map_tuftRS_to_deepLTS ,
& num_tuftRS_to_deepLTS , display)
CALL synaptic_map_construct (thisno,
& num_tuftRS, num_nontuftRS,
& map_tuftRS_to_nontuftRS,
& num_tuftRS_to_nontuftRS, display)
CALL synaptic_map_construct (thisno,
& num_deepbask, num_spinstell,
& map_deepbask_to_spinstell,
& num_deepbask_to_spinstell, display)
CALL synaptic_map_construct (thisno,
& num_deepbask, num_tuftIB ,
& map_deepbask_to_tuftIB ,
& num_deepbask_to_tuftIB , display)
CALL synaptic_map_construct (thisno,
& num_deepbask, num_tuftRS ,
& map_deepbask_to_tuftRS ,
& num_deepbask_to_tuftRS , display)
CALL synaptic_map_construct (thisno,
& num_deepbask, num_deepbask ,
& map_deepbask_to_deepbask ,
& num_deepbask_to_deepbask , display)
CALL synaptic_map_construct (thisno,
& num_deepbask, num_deepaxax ,
& map_deepbask_to_deepaxax ,
& num_deepbask_to_deepaxax , display)
CALL synaptic_map_construct (thisno,
& num_deepbask, num_deepLTS ,
& map_deepbask_to_deepLTS ,
& num_deepbask_to_deepLTS , display)
CALL synaptic_map_construct (thisno,
& num_deepbask, num_nontuftRS,
& map_deepbask_to_nontuftRS,
& num_deepbask_to_nontuftRS, display)
CALL synaptic_map_construct (thisno,
& num_deepaxax, num_suppyrRS ,
& map_deepaxax_to_suppyrRS ,
& num_deepaxax_to_suppyrRS , display)
CALL synaptic_map_construct (thisno,
& num_deepaxax, num_suppyrFRB,
& map_deepaxax_to_suppyrFRB,
& num_deepaxax_to_suppyrFRB, display)
CALL synaptic_map_construct (thisno,
& num_deepaxax, num_spinstell,
& map_deepaxax_to_spinstell,
& num_deepaxax_to_spinstell, display)
CALL synaptic_map_construct (thisno,
& num_deepaxax, num_tuftIB ,
& map_deepaxax_to_tuftIB ,
& num_deepaxax_to_tuftIB , display)
CALL synaptic_map_construct (thisno,
& num_deepaxax, num_tuftRS ,
& map_deepaxax_to_tuftRS ,
& num_deepaxax_to_tuftRS , display)
CALL synaptic_map_construct (thisno,
& num_deepaxax, num_nontuftRS ,
& map_deepaxax_to_nontuftRS ,
& num_deepaxax_to_nontuftRS , display)
CALL synaptic_map_construct (thisno,
& num_deepLTS , num_suppyrRS ,
& map_deepLTS_to_suppyrRS ,
& num_deepLTS_to_suppyrRS , display)
CALL synaptic_map_construct (thisno,
& num_deepLTS , num_suppyrFRB ,
& map_deepLTS_to_suppyrFRB ,
& num_deepLTS_to_suppyrFRB , display)
CALL synaptic_map_construct (thisno,
& num_deepLTS , num_supbask ,
& map_deepLTS_to_supbask ,
& num_deepLTS_to_supbask , display)
CALL synaptic_map_construct (thisno,
& num_deepLTS , num_supaxax ,
& map_deepLTS_to_supaxax ,
& num_deepLTS_to_supaxax , display)
CALL synaptic_map_construct (thisno,
& num_deepLTS , num_supLTS ,
& map_deepLTS_to_supLTS ,
& num_deepLTS_to_supLTS , display)
CALL synaptic_map_construct (thisno,
& num_deepLTS , num_spinstell ,
& map_deepLTS_to_spinstell ,
& num_deepLTS_to_spinstell , display)
CALL synaptic_map_construct (thisno,
& num_deepLTS , num_tuftIB ,
& map_deepLTS_to_tuftIB ,
& num_deepLTS_to_tuftIB , display)
CALL synaptic_map_construct (thisno,
& num_deepLTS , num_tuftRS ,
& map_deepLTS_to_tuftRS ,
& num_deepLTS_to_tuftRS , display)
CALL synaptic_map_construct (thisno,
& num_deepLTS , num_deepbask ,
& map_deepLTS_to_deepbask ,
& num_deepLTS_to_deepbask , display)
CALL synaptic_map_construct (thisno,
& num_deepLTS , num_deepaxax ,
& map_deepLTS_to_deepaxax ,
& num_deepLTS_to_deepaxax , display)
CALL synaptic_map_construct (thisno,
& num_deepLTS , num_deepLTS ,
& map_deepLTS_to_deepLTS ,
& num_deepLTS_to_deepLTS , display)
CALL synaptic_map_construct (thisno,
& num_deepLTS , num_nontuftRS ,
& map_deepLTS_to_nontuftRS ,
& num_deepLTS_to_nontuftRS , display)
CALL synaptic_map_construct (thisno,
& num_TCR , num_suppyrRS ,
& map_TCR_to_suppyrRS ,
& num_TCR_to_suppyrRS , display)
CALL synaptic_map_construct (thisno,
& num_TCR , num_suppyrFRB ,
& map_TCR_to_suppyrFRB ,
& num_TCR_to_suppyrFRB , display)
CALL synaptic_map_construct (thisno,
& num_TCR , num_supbask ,
& map_TCR_to_supbask ,
& num_TCR_to_supbask , display)
CALL synaptic_map_construct (thisno,
& num_TCR , num_supaxax ,
& map_TCR_to_supaxax ,
& num_TCR_to_supaxax , display)
CALL synaptic_map_construct (thisno,
& num_TCR , num_spinstell ,
& map_TCR_to_spinstell ,
& num_TCR_to_spinstell , display)
CALL synaptic_map_construct (thisno,
& num_TCR , num_tuftIB ,
& map_TCR_to_tuftIB ,
& num_TCR_to_tuftIB , display)
CALL synaptic_map_construct (thisno,
& num_TCR , num_tuftRS ,
& map_TCR_to_tuftRS ,
& num_TCR_to_tuftRS , display)
CALL synaptic_map_construct (thisno,
& num_TCR , num_deepbask ,
& map_TCR_to_deepbask ,
& num_TCR_to_deepbask , display)
CALL synaptic_map_construct (thisno,
& num_TCR , num_deepaxax ,
& map_TCR_to_deepaxax ,
& num_TCR_to_deepaxax , display)
CALL synaptic_map_construct (thisno,
& num_TCR , num_nRT ,
& map_TCR_to_nRT ,
& num_TCR_to_nRT , display)
CALL synaptic_map_construct (thisno,
& num_TCR , num_nontuftRS ,
& map_TCR_to_nontuftRS ,
& num_TCR_to_nontuftRS , display)
CALL synaptic_map_construct (thisno,
& num_nRT , num_TCR ,
& map_nRT_to_TCR ,
& num_nRT_to_TCR , display)
CALL synaptic_map_construct (thisno,
& num_nRT , num_nRT ,
& map_nRT_to_nRT ,
& num_nRT_to_nRT , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_suppyrRS ,
& map_nontuftRS_to_suppyrRS ,
& num_nontuftRS_to_suppyrRS , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_suppyrFRB ,
& map_nontuftRS_to_suppyrFRB ,
& num_nontuftRS_to_suppyrFRB , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_supbask ,
& map_nontuftRS_to_supbask ,
& num_nontuftRS_to_supbask , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_supaxax ,
& map_nontuftRS_to_supaxax ,
& num_nontuftRS_to_supaxax , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_supLTS ,
& map_nontuftRS_to_supLTS ,
& num_nontuftRS_to_supLTS , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_spinstell ,
& map_nontuftRS_to_spinstell ,
& num_nontuftRS_to_spinstell , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_tuftIB ,
& map_nontuftRS_to_tuftIB ,
& num_nontuftRS_to_tuftIB , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_tuftRS ,
& map_nontuftRS_to_tuftRS ,
& num_nontuftRS_to_tuftRS , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_deepbask ,
& map_nontuftRS_to_deepbask ,
& num_nontuftRS_to_deepbask , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_deepaxax ,
& map_nontuftRS_to_deepaxax ,
& num_nontuftRS_to_deepaxax , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_deepLTS ,
& map_nontuftRS_to_deepLTS ,
& num_nontuftRS_to_deepLTS , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_TCR ,
& map_nontuftRS_to_TCR ,
& num_nontuftRS_to_TCR , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_nRT ,
& map_nontuftRS_to_nRT ,
& num_nontuftRS_to_nRT , display)
CALL synaptic_map_construct (thisno,
& num_nontuftRS , num_nontuftRS ,
& map_nontuftRS_to_nontuftRS ,
& num_nontuftRS_to_nontuftRS , display)
c Finish construction of synaptic connection tables.
c Construct synaptic compartment maps.
display = 0
CALL synaptic_compmap_construct (thisno,
& num_suppyrRS, com_suppyrRS_to_suppyrRS,
& num_suppyrRS_to_suppyrRS,
& ncompallow_suppyrRS_to_suppyrRS,
& compallow_suppyrRS_to_suppyrRS, display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrFRB, com_suppyrRS_to_suppyrFRB,
& num_suppyrRS_to_suppyrFRB,
& ncompallow_suppyrRS_to_suppyrFRB,
& compallow_suppyrRS_to_suppyrFRB, display)
CALL synaptic_compmap_construct (thisno,
& num_supbask , com_suppyrRS_to_supbask,
& num_suppyrRS_to_supbask,
& ncompallow_suppyrRS_to_supbask,
& compallow_suppyrRS_to_supbask, display)
CALL synaptic_compmap_construct (thisno,
& num_supaxax , com_suppyrRS_to_supaxax,
& num_suppyrRS_to_supaxax,
& ncompallow_suppyrRS_to_supaxax,
& compallow_suppyrRS_to_supaxax, display)
CALL synaptic_compmap_construct (thisno,
& num_supLTS , com_suppyrRS_to_supLTS,
& num_suppyrRS_to_supLTS,
& ncompallow_suppyrRS_to_supLTS,
& compallow_suppyrRS_to_supLTS, display)
CALL synaptic_compmap_construct (thisno,
& num_spinstell, com_suppyrRS_to_spinstell,
& num_suppyrRS_to_spinstell,
& ncompallow_suppyrRS_to_spinstell,
& compallow_suppyrRS_to_spinstell, display)
CALL synaptic_compmap_construct (thisno,
& num_tuftIB , com_suppyrRS_to_tuftIB ,
& num_suppyrRS_to_tuftIB ,
& ncompallow_suppyrRS_to_tuftIB ,
& compallow_suppyrRS_to_tuftIB , display)
CALL synaptic_compmap_construct (thisno,
& num_tuftRS , com_suppyrRS_to_tuftRS ,
& num_suppyrRS_to_tuftRS ,
& ncompallow_suppyrRS_to_tuftRS ,
& compallow_suppyrRS_to_tuftRS , display)
CALL synaptic_compmap_construct (thisno,
& num_deepbask , com_suppyrRS_to_deepbask ,
& num_suppyrRS_to_deepbask ,
& ncompallow_suppyrRS_to_deepbask ,
& compallow_suppyrRS_to_deepbask , display)
CALL synaptic_compmap_construct (thisno,
& num_deepaxax , com_suppyrRS_to_deepaxax ,
& num_suppyrRS_to_deepaxax ,
& ncompallow_suppyrRS_to_deepaxax ,
& compallow_suppyrRS_to_deepaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_deepLTS , com_suppyrRS_to_deepLTS ,
& num_suppyrRS_to_deepLTS ,
& ncompallow_suppyrRS_to_deepLTS ,
& compallow_suppyrRS_to_deepLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_nontuftRS, com_suppyrRS_to_nontuftRS,
& num_suppyrRS_to_nontuftRS,
& ncompallow_suppyrRS_to_nontuftRS,
& compallow_suppyrRS_to_nontuftRS, display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrRS , com_suppyrFRB_to_suppyrRS ,
& num_suppyrFRB_to_suppyrRS ,
& ncompallow_suppyrFRB_to_suppyrRS ,
& compallow_suppyrFRB_to_suppyrRS , display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrFRB, com_suppyrFRB_to_suppyrFRB,
& num_suppyrFRB_to_suppyrFRB,
& ncompallow_suppyrFRB_to_suppyrFRB,
& compallow_suppyrFRB_to_suppyrFRB, display)
CALL synaptic_compmap_construct (thisno,
& num_supbask , com_suppyrFRB_to_supbask ,
& num_suppyrFRB_to_supbask ,
& ncompallow_suppyrFRB_to_supbask ,
& compallow_suppyrFRB_to_supbask , display)
CALL synaptic_compmap_construct (thisno,
& num_supaxax , com_suppyrFRB_to_supaxax ,
& num_suppyrFRB_to_supaxax ,
& ncompallow_suppyrFRB_to_supaxax ,
& compallow_suppyrFRB_to_supaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_supLTS , com_suppyrFRB_to_supLTS ,
& num_suppyrFRB_to_supLTS ,
& ncompallow_suppyrFRB_to_supLTS ,
& compallow_suppyrFRB_to_supLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_spinstell, com_suppyrFRB_to_spinstell,
& num_suppyrFRB_to_spinstell,
& ncompallow_suppyrFRB_to_spinstell,
& compallow_suppyrFRB_to_spinstell, display)
CALL synaptic_compmap_construct (thisno,
& num_tuftIB , com_suppyrFRB_to_tuftIB ,
& num_suppyrFRB_to_tuftIB ,
& ncompallow_suppyrFRB_to_tuftIB ,
& compallow_suppyrFRB_to_tuftIB , display)
CALL synaptic_compmap_construct (thisno,
& num_tuftRS , com_suppyrFRB_to_tuftRS ,
& num_suppyrFRB_to_tuftRS ,
& ncompallow_suppyrFRB_to_tuftRS ,
& compallow_suppyrFRB_to_tuftRS , display)
CALL synaptic_compmap_construct (thisno,
& num_deepbask , com_suppyrFRB_to_deepbask ,
& num_suppyrFRB_to_deepbask ,
& ncompallow_suppyrFRB_to_deepbask ,
& compallow_suppyrFRB_to_deepbask , display)
CALL synaptic_compmap_construct (thisno,
& num_deepaxax , com_suppyrFRB_to_deepaxax ,
& num_suppyrFRB_to_deepaxax ,
& ncompallow_suppyrFRB_to_deepaxax ,
& compallow_suppyrFRB_to_deepaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_deepLTS , com_suppyrFRB_to_deepLTS ,
& num_suppyrFRB_to_deepLTS ,
& ncompallow_suppyrFRB_to_deepLTS ,
& compallow_suppyrFRB_to_deepLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_nontuftRS, com_suppyrFRB_to_nontuftRS,
& num_suppyrFRB_to_nontuftRS,
& ncompallow_suppyrFRB_to_nontuftRS,
& compallow_suppyrFRB_to_nontuftRS, display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrRS , com_supbask_to_suppyrRS ,
& num_supbask_to_suppyrRS ,
& ncompallow_supbask_to_suppyrRS ,
& compallow_supbask_to_suppyrRS , display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrFRB, com_supbask_to_suppyrFRB,
& num_supbask_to_suppyrFRB,
& ncompallow_supbask_to_suppyrFRB,
& compallow_supbask_to_suppyrFRB, display)
CALL synaptic_compmap_construct (thisno,
& num_supbask , com_supbask_to_supbask ,
& num_supbask_to_supbask ,
& ncompallow_supbask_to_supbask ,
& compallow_supbask_to_supbask , display)
CALL synaptic_compmap_construct (thisno,
& num_supaxax , com_supbask_to_supaxax ,
& num_supbask_to_supaxax ,
& ncompallow_supbask_to_supaxax ,
& compallow_supbask_to_supaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_supLTS , com_supbask_to_supLTS ,
& num_supbask_to_supLTS ,
& ncompallow_supbask_to_supLTS ,
& compallow_supbask_to_supLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_spinstell, com_supbask_to_spinstell,
& num_supbask_to_spinstell,
& ncompallow_supbask_to_spinstell,
& compallow_supbask_to_spinstell, display)
c CALL synaptic_compmap_construct (thisno,
c & num_suppyrRS , com_supaxax_to_suppyrRS ,
c & num_supaxax_to_suppyrRS ,
c & ncompallow_supaxax_to_suppyrRS ,
c & compallow_supaxax_to_suppyrRS , display)
c CALL synaptic_compmap_construct (thisno,
c & num_suppyrFRB, com_supaxax_to_suppyrFRB,
c & num_supaxax_to_suppyrFRB,
c & ncompallow_supaxax_to_suppyrFRB,
c & compallow_supaxax_to_suppyrFRB, display)
c CALL synaptic_compmap_construct (thisno,
c & num_spinstell, com_supaxax_to_spinstell,
c & num_supaxax_to_spinstell,
c & ncompallow_supaxax_to_spinstell,
c & compallow_supaxax_to_spinstell, display)
c CALL synaptic_compmap_construct (thisno,
c & num_tuftIB , com_supaxax_to_tuftIB ,
c & num_supaxax_to_tuftIB ,
c & ncompallow_supaxax_to_tuftIB ,
c & compallow_supaxax_to_tuftIB , display)
c CALL synaptic_compmap_construct (thisno,
c & num_tuftRS , com_supaxax_to_tuftRS ,
c & num_supaxax_to_tuftRS ,
c & ncompallow_supaxax_to_tuftRS ,
c & compallow_supaxax_to_tuftRS , display)
c CALL synaptic_compmap_construct (thisno,
c & num_nontuftRS, com_supaxax_to_nontuftRS,
c & num_supaxax_to_nontuftRS,
c & ncompallow_supaxax_to_nontuftRS,
c & compallow_supaxax_to_nontuftRS, display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrRS , com_supLTS_to_suppyrRS ,
& num_supLTS_to_suppyrRS ,
& ncompallow_supLTS_to_suppyrRS ,
& compallow_supLTS_to_suppyrRS , display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrFRB, com_supLTS_to_suppyrFRB,
& num_supLTS_to_suppyrFRB,
& ncompallow_supLTS_to_suppyrFRB,
& compallow_supLTS_to_suppyrFRB, display)
CALL synaptic_compmap_construct (thisno,
& num_supbask , com_supLTS_to_supbask ,
& num_supLTS_to_supbask ,
& ncompallow_supLTS_to_supbask ,
& compallow_supLTS_to_supbask , display)
CALL synaptic_compmap_construct (thisno,
& num_supaxax , com_supLTS_to_supaxax ,
& num_supLTS_to_supaxax ,
& ncompallow_supLTS_to_supaxax ,
& compallow_supLTS_to_supaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_supLTS , com_supLTS_to_supLTS ,
& num_supLTS_to_supLTS ,
& ncompallow_supLTS_to_supLTS ,
& compallow_supLTS_to_supLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_spinstell, com_supLTS_to_spinstell,
& num_supLTS_to_spinstell,
& ncompallow_supLTS_to_spinstell,
& compallow_supLTS_to_spinstell, display)
CALL synaptic_compmap_construct (thisno,
& num_tuftIB , com_supLTS_to_tuftIB ,
& num_supLTS_to_tuftIB ,
& ncompallow_supLTS_to_tuftIB ,
& compallow_supLTS_to_tuftIB , display)
CALL synaptic_compmap_construct (thisno,
& num_tuftRS , com_supLTS_to_tuftRS ,
& num_supLTS_to_tuftRS ,
& ncompallow_supLTS_to_tuftRS ,
& compallow_supLTS_to_tuftRS , display)
CALL synaptic_compmap_construct (thisno,
& num_deepbask , com_supLTS_to_deepbask ,
& num_supLTS_to_deepbask ,
& ncompallow_supLTS_to_deepbask ,
& compallow_supLTS_to_deepbask , display)
CALL synaptic_compmap_construct (thisno,
& num_deepaxax , com_supLTS_to_deepaxax ,
& num_supLTS_to_deepaxax ,
& ncompallow_supLTS_to_deepaxax ,
& compallow_supLTS_to_deepaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_deepLTS , com_supLTS_to_deepLTS ,
& num_supLTS_to_deepLTS ,
& ncompallow_supLTS_to_deepLTS ,
& compallow_supLTS_to_deepLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_nontuftRS, com_supLTS_to_nontuftRS,
& num_supLTS_to_nontuftRS,
& ncompallow_supLTS_to_nontuftRS,
& compallow_supLTS_to_nontuftRS, display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrRS , com_spinstell_to_suppyrRS ,
& num_spinstell_to_suppyrRS ,
& ncompallow_spinstell_to_suppyrRS ,
& compallow_spinstell_to_suppyrRS , display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrFRB, com_spinstell_to_suppyrFRB,
& num_spinstell_to_suppyrFRB,
& ncompallow_spinstell_to_suppyrFRB,
& compallow_spinstell_to_suppyrFRB, display)
CALL synaptic_compmap_construct (thisno,
& num_supbask , com_spinstell_to_supbask ,
& num_spinstell_to_supbask ,
& ncompallow_spinstell_to_supbask ,
& compallow_spinstell_to_supbask , display)
CALL synaptic_compmap_construct (thisno,
& num_supaxax , com_spinstell_to_supaxax ,
& num_spinstell_to_supaxax ,
& ncompallow_spinstell_to_supaxax ,
& compallow_spinstell_to_supaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_supLTS , com_spinstell_to_supLTS ,
& num_spinstell_to_supLTS ,
& ncompallow_spinstell_to_supLTS ,
& compallow_spinstell_to_supLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_spinstell, com_spinstell_to_spinstell,
& num_spinstell_to_spinstell,
& ncompallow_spinstell_to_spinstell,
& compallow_spinstell_to_spinstell, display)
CALL synaptic_compmap_construct (thisno,
& num_tuftIB , com_spinstell_to_tuftIB ,
& num_spinstell_to_tuftIB ,
& ncompallow_spinstell_to_tuftIB ,
& compallow_spinstell_to_tuftIB , display)
CALL synaptic_compmap_construct (thisno,
& num_tuftRS , com_spinstell_to_tuftRS ,
& num_spinstell_to_tuftRS ,
& ncompallow_spinstell_to_tuftRS ,
& compallow_spinstell_to_tuftRS , display)
CALL synaptic_compmap_construct (thisno,
& num_deepbask , com_spinstell_to_deepbask ,
& num_spinstell_to_deepbask ,
& ncompallow_spinstell_to_deepbask ,
& compallow_spinstell_to_deepbask , display)
CALL synaptic_compmap_construct (thisno,
& num_deepaxax , com_spinstell_to_deepaxax ,
& num_spinstell_to_deepaxax ,
& ncompallow_spinstell_to_deepaxax ,
& compallow_spinstell_to_deepaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_deepLTS , com_spinstell_to_deepLTS ,
& num_spinstell_to_deepLTS ,
& ncompallow_spinstell_to_deepLTS ,
& compallow_spinstell_to_deepLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_nontuftRS, com_spinstell_to_nontuftRS,
& num_spinstell_to_nontuftRS,
& ncompallow_spinstell_to_nontuftRS,
& compallow_spinstell_to_nontuftRS, display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrRS , com_tuftIB_to_suppyrRS ,
& num_tuftIB_to_suppyrRS ,
& ncompallow_tuftIB_to_suppyrRS ,
& compallow_tuftIB_to_suppyrRS , display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrFRB, com_tuftIB_to_suppyrFRB,
& num_tuftIB_to_suppyrFRB,
& ncompallow_tuftIB_to_suppyrFRB,
& compallow_tuftIB_to_suppyrFRB, display)
CALL synaptic_compmap_construct (thisno,
& num_supbask , com_tuftIB_to_supbask ,
& num_tuftIB_to_supbask ,
& ncompallow_tuftIB_to_supbask ,
& compallow_tuftIB_to_supbask , display)
CALL synaptic_compmap_construct (thisno,
& num_supaxax , com_tuftIB_to_supaxax ,
& num_tuftIB_to_supaxax ,
& ncompallow_tuftIB_to_supaxax ,
& compallow_tuftIB_to_supaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_supLTS , com_tuftIB_to_supLTS ,
& num_tuftIB_to_supLTS ,
& ncompallow_tuftIB_to_supLTS ,
& compallow_tuftIB_to_supLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_spinstell, com_tuftIB_to_spinstell,
& num_tuftIB_to_spinstell,
& ncompallow_tuftIB_to_spinstell,
& compallow_tuftIB_to_spinstell, display)
CALL synaptic_compmap_construct (thisno,
& num_tuftIB , com_tuftIB_to_tuftIB ,
& num_tuftIB_to_tuftIB ,
& ncompallow_tuftIB_to_tuftIB ,
& compallow_tuftIB_to_tuftIB , display)
CALL synaptic_compmap_construct (thisno,
& num_tuftRS , com_tuftIB_to_tuftRS ,
& num_tuftIB_to_tuftRS ,
& ncompallow_tuftIB_to_tuftRS ,
& compallow_tuftIB_to_tuftRS , display)
CALL synaptic_compmap_construct (thisno,
& num_deepbask , com_tuftIB_to_deepbask ,
& num_tuftIB_to_deepbask ,
& ncompallow_tuftIB_to_deepbask ,
& compallow_tuftIB_to_deepbask , display)
CALL synaptic_compmap_construct (thisno,
& num_deepaxax , com_tuftIB_to_deepaxax ,
& num_tuftIB_to_deepaxax ,
& ncompallow_tuftIB_to_deepaxax ,
& compallow_tuftIB_to_deepaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_deepLTS , com_tuftIB_to_deepLTS ,
& num_tuftIB_to_deepLTS ,
& ncompallow_tuftIB_to_deepLTS ,
& compallow_tuftIB_to_deepLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_nontuftRS, com_tuftIB_to_nontuftRS,
& num_tuftIB_to_nontuftRS,
& ncompallow_tuftIB_to_nontuftRS,
& compallow_tuftIB_to_nontuftRS, display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrRS , com_tuftRS_to_suppyrRS ,
& num_tuftRS_to_suppyrRS ,
& ncompallow_tuftRS_to_suppyrRS ,
& compallow_tuftRS_to_suppyrRS , display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrFRB, com_tuftRS_to_suppyrFRB,
& num_tuftRS_to_suppyrFRB,
& ncompallow_tuftRS_to_suppyrFRB,
& compallow_tuftRS_to_suppyrFRB, display)
CALL synaptic_compmap_construct (thisno,
& num_supbask , com_tuftRS_to_supbask ,
& num_tuftRS_to_supbask ,
& ncompallow_tuftRS_to_supbask ,
& compallow_tuftRS_to_supbask , display)
CALL synaptic_compmap_construct (thisno,
& num_supaxax , com_tuftRS_to_supaxax ,
& num_tuftRS_to_supaxax ,
& ncompallow_tuftRS_to_supaxax ,
& compallow_tuftRS_to_supaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_supLTS , com_tuftRS_to_supLTS ,
& num_tuftRS_to_supLTS ,
& ncompallow_tuftRS_to_supLTS ,
& compallow_tuftRS_to_supLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_spinstell, com_tuftRS_to_spinstell,
& num_tuftRS_to_spinstell,
& ncompallow_tuftRS_to_spinstell,
& compallow_tuftRS_to_spinstell, display)
CALL synaptic_compmap_construct (thisno,
& num_tuftIB , com_tuftRS_to_tuftIB ,
& num_tuftRS_to_tuftIB ,
& ncompallow_tuftRS_to_tuftIB ,
& compallow_tuftRS_to_tuftIB , display)
CALL synaptic_compmap_construct (thisno,
& num_tuftRS , com_tuftRS_to_tuftRS ,
& num_tuftRS_to_tuftRS ,
& ncompallow_tuftRS_to_tuftRS ,
& compallow_tuftRS_to_tuftRS , display)
CALL synaptic_compmap_construct (thisno,
& num_deepbask , com_tuftRS_to_deepbask ,
& num_tuftRS_to_deepbask ,
& ncompallow_tuftRS_to_deepbask ,
& compallow_tuftRS_to_deepbask , display)
CALL synaptic_compmap_construct (thisno,
& num_deepaxax , com_tuftRS_to_deepaxax ,
& num_tuftRS_to_deepaxax ,
& ncompallow_tuftRS_to_deepaxax ,
& compallow_tuftRS_to_deepaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_deepLTS , com_tuftRS_to_deepLTS ,
& num_tuftRS_to_deepLTS ,
& ncompallow_tuftRS_to_deepLTS ,
& compallow_tuftRS_to_deepLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_nontuftRS, com_tuftRS_to_nontuftRS,
& num_tuftRS_to_nontuftRS,
& ncompallow_tuftRS_to_nontuftRS,
& compallow_tuftRS_to_nontuftRS, display)
CALL synaptic_compmap_construct (thisno,
& num_spinstell, com_deepbask_to_spinstell,
& num_deepbask_to_spinstell,
& ncompallow_deepbask_to_spinstell,
& compallow_deepbask_to_spinstell, display)
CALL synaptic_compmap_construct (thisno,
& num_tuftIB , com_deepbask_to_tuftIB ,
& num_deepbask_to_tuftIB ,
& ncompallow_deepbask_to_tuftIB ,
& compallow_deepbask_to_tuftIB , display)
CALL synaptic_compmap_construct (thisno,
& num_tuftRS , com_deepbask_to_tuftRS ,
& num_deepbask_to_tuftRS ,
& ncompallow_deepbask_to_tuftRS ,
& compallow_deepbask_to_tuftRS , display)
CALL synaptic_compmap_construct (thisno,
& num_deepbask , com_deepbask_to_deepbask ,
& num_deepbask_to_deepbask ,
& ncompallow_deepbask_to_deepbask ,
& compallow_deepbask_to_deepbask , display)
CALL synaptic_compmap_construct (thisno,
& num_deepaxax , com_deepbask_to_deepaxax ,
& num_deepbask_to_deepaxax ,
& ncompallow_deepbask_to_deepaxax ,
& compallow_deepbask_to_deepaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_deepLTS , com_deepbask_to_deepLTS ,
& num_deepbask_to_deepLTS ,
& ncompallow_deepbask_to_deepLTS ,
& compallow_deepbask_to_deepLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_nontuftRS, com_deepbask_to_nontuftRS,
& num_deepbask_to_nontuftRS,
& ncompallow_deepbask_to_nontuftRS,
& compallow_deepbask_to_nontuftRS, display)
c CALL synaptic_compmap_construct (thisno,
c & num_suppyrRS , com_deepaxax_to_suppyrRS ,
c & num_deepaxax_to_suppyrRS ,
c & ncompallow_deepaxax_to_suppyrRS ,
c & compallow_deepaxax_to_suppyrRS , display)
c CALL synaptic_compmap_construct (thisno,
c & num_suppyrFRB, com_deepaxax_to_suppyrFRB,
c & num_deepaxax_to_suppyrFRB,
c & ncompallow_deepaxax_to_suppyrFRB,
c & compallow_deepaxax_to_suppyrFRB, display)
c CALL synaptic_compmap_construct (thisno,
c & num_spinstell, com_deepaxax_to_spinstell,
c & num_deepaxax_to_spinstell,
c & ncompallow_deepaxax_to_spinstell,
c & compallow_deepaxax_to_spinstell, display)
c CALL synaptic_compmap_construct (thisno,
c & num_tuftIB , com_deepaxax_to_tuftIB ,
c & num_deepaxax_to_tuftIB ,
c & ncompallow_deepaxax_to_tuftIB ,
c & compallow_deepaxax_to_tuftIB , display)
c CALL synaptic_compmap_construct (thisno,
c & num_tuftRS , com_deepaxax_to_tuftRS ,
c & num_deepaxax_to_tuftRS ,
c & ncompallow_deepaxax_to_tuftRS ,
c & compallow_deepaxax_to_tuftRS , display)
c CALL synaptic_compmap_construct (thisno,
c & num_nontuftRS, com_deepaxax_to_nontuftRS,
c & num_deepaxax_to_nontuftRS,
c & ncompallow_deepaxax_to_nontuftRS,
c & compallow_deepaxax_to_nontuftRS, display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrRS , com_deepLTS_to_suppyrRS ,
& num_deepLTS_to_suppyrRS ,
& ncompallow_deepLTS_to_suppyrRS ,
& compallow_deepLTS_to_suppyrRS , display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrFRB, com_deepLTS_to_suppyrFRB,
& num_deepLTS_to_suppyrFRB,
& ncompallow_deepLTS_to_suppyrFRB,
& compallow_deepLTS_to_suppyrFRB, display)
CALL synaptic_compmap_construct (thisno,
& num_supbask , com_deepLTS_to_supbask ,
& num_deepLTS_to_supbask ,
& ncompallow_deepLTS_to_supbask ,
& compallow_deepLTS_to_supbask , display)
CALL synaptic_compmap_construct (thisno,
& num_supaxax , com_deepLTS_to_supaxax ,
& num_deepLTS_to_supaxax ,
& ncompallow_deepLTS_to_supaxax ,
& compallow_deepLTS_to_supaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_supLTS , com_deepLTS_to_supLTS ,
& num_deepLTS_to_supLTS ,
& ncompallow_deepLTS_to_supLTS ,
& compallow_deepLTS_to_supLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_spinstell, com_deepLTS_to_spinstell,
& num_deepLTS_to_spinstell,
& ncompallow_deepLTS_to_spinstell,
& compallow_deepLTS_to_spinstell, display)
CALL synaptic_compmap_construct (thisno,
& num_tuftIB , com_deepLTS_to_tuftIB ,
& num_deepLTS_to_tuftIB ,
& ncompallow_deepLTS_to_tuftIB ,
& compallow_deepLTS_to_tuftIB , display)
CALL synaptic_compmap_construct (thisno,
& num_tuftRS , com_deepLTS_to_tuftRS ,
& num_deepLTS_to_tuftRS ,
& ncompallow_deepLTS_to_tuftRS ,
& compallow_deepLTS_to_tuftRS , display)
CALL synaptic_compmap_construct (thisno,
& num_deepbask , com_deepLTS_to_deepbask ,
& num_deepLTS_to_deepbask ,
& ncompallow_deepLTS_to_deepbask ,
& compallow_deepLTS_to_deepbask , display)
CALL synaptic_compmap_construct (thisno,
& num_deepaxax , com_deepLTS_to_deepaxax ,
& num_deepLTS_to_deepaxax ,
& ncompallow_deepLTS_to_deepaxax ,
& compallow_deepLTS_to_deepaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_deepLTS , com_deepLTS_to_deepLTS ,
& num_deepLTS_to_deepLTS ,
& ncompallow_deepLTS_to_deepLTS ,
& compallow_deepLTS_to_deepLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_nontuftRS, com_deepLTS_to_nontuftRS,
& num_deepLTS_to_nontuftRS,
& ncompallow_deepLTS_to_nontuftRS,
& compallow_deepLTS_to_nontuftRS, display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrRS , com_TCR_to_suppyrRS ,
& num_TCR_to_suppyrRS ,
& ncompallow_TCR_to_suppyrRS ,
& compallow_TCR_to_suppyrRS , display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrFRB, com_TCR_to_suppyrFRB,
& num_TCR_to_suppyrFRB,
& ncompallow_TCR_to_suppyrFRB,
& compallow_TCR_to_suppyrFRB, display)
CALL synaptic_compmap_construct (thisno,
& num_supbask , com_TCR_to_supbask ,
& num_TCR_to_supbask ,
& ncompallow_TCR_to_supbask ,
& compallow_TCR_to_supbask , display)
CALL synaptic_compmap_construct (thisno,
& num_supaxax , com_TCR_to_supaxax ,
& num_TCR_to_supaxax ,
& ncompallow_TCR_to_supaxax ,
& compallow_TCR_to_supaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_spinstell, com_TCR_to_spinstell,
& num_TCR_to_spinstell,
& ncompallow_TCR_to_spinstell,
& compallow_TCR_to_spinstell, display)
CALL synaptic_compmap_construct (thisno,
& num_tuftIB , com_TCR_to_tuftIB ,
& num_TCR_to_tuftIB ,
& ncompallow_TCR_to_tuftIB ,
& compallow_TCR_to_tuftIB , display)
CALL synaptic_compmap_construct (thisno,
& num_tuftRS , com_TCR_to_tuftRS ,
& num_TCR_to_tuftRS ,
& ncompallow_TCR_to_tuftRS ,
& compallow_TCR_to_tuftRS , display)
CALL synaptic_compmap_construct (thisno,
& num_deepbask , com_TCR_to_deepbask ,
& num_TCR_to_deepbask ,
& ncompallow_TCR_to_deepbask ,
& compallow_TCR_to_deepbask , display)
CALL synaptic_compmap_construct (thisno,
& num_deepaxax , com_TCR_to_deepaxax ,
& num_TCR_to_deepaxax ,
& ncompallow_TCR_to_deepaxax ,
& compallow_TCR_to_deepaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_nRT , com_TCR_to_nRT ,
& num_TCR_to_nRT ,
& ncompallow_TCR_to_nRT ,
& compallow_TCR_to_nRT , display)
CALL synaptic_compmap_construct (thisno,
& num_nontuftRS, com_TCR_to_nontuftRS,
& num_TCR_to_nontuftRS,
& ncompallow_TCR_to_nontuftRS,
& compallow_TCR_to_nontuftRS, display)
CALL synaptic_compmap_construct (thisno,
& num_TCR , com_nRT_to_TCR ,
& num_nRT_to_TCR ,
& ncompallow_nRT_to_TCR ,
& compallow_nRT_to_TCR , display)
CALL synaptic_compmap_construct (thisno,
& num_nRT , com_nRT_to_nRT ,
& num_nRT_to_nRT ,
& ncompallow_nRT_to_nRT ,
& compallow_nRT_to_nRT , display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrRS , com_nontuftRS_to_suppyrRS ,
& num_nontuftRS_to_suppyrRS ,
& ncompallow_nontuftRS_to_suppyrRS ,
& compallow_nontuftRS_to_suppyrRS , display)
CALL synaptic_compmap_construct (thisno,
& num_suppyrFRB, com_nontuftRS_to_suppyrFRB,
& num_nontuftRS_to_suppyrFRB,
& ncompallow_nontuftRS_to_suppyrFRB,
& compallow_nontuftRS_to_suppyrFRB, display)
CALL synaptic_compmap_construct (thisno,
& num_supbask , com_nontuftRS_to_supbask ,
& num_nontuftRS_to_supbask ,
& ncompallow_nontuftRS_to_supbask ,
& compallow_nontuftRS_to_supbask , display)
CALL synaptic_compmap_construct (thisno,
& num_supaxax , com_nontuftRS_to_supaxax ,
& num_nontuftRS_to_supaxax ,
& ncompallow_nontuftRS_to_supaxax ,
& compallow_nontuftRS_to_supaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_supLTS , com_nontuftRS_to_supLTS ,
& num_nontuftRS_to_supLTS ,
& ncompallow_nontuftRS_to_supLTS ,
& compallow_nontuftRS_to_supLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_spinstell, com_nontuftRS_to_spinstell,
& num_nontuftRS_to_spinstell,
& ncompallow_nontuftRS_to_spinstell,
& compallow_nontuftRS_to_spinstell, display)
CALL synaptic_compmap_construct (thisno,
& num_tuftIB , com_nontuftRS_to_tuftIB ,
& num_nontuftRS_to_tuftIB ,
& ncompallow_nontuftRS_to_tuftIB ,
& compallow_nontuftRS_to_tuftIB , display)
CALL synaptic_compmap_construct (thisno,
& num_tuftRS , com_nontuftRS_to_tuftRS ,
& num_nontuftRS_to_tuftRS ,
& ncompallow_nontuftRS_to_tuftRS ,
& compallow_nontuftRS_to_tuftRS , display)
CALL synaptic_compmap_construct (thisno,
& num_deepbask , com_nontuftRS_to_deepbask ,
& num_nontuftRS_to_deepbask ,
& ncompallow_nontuftRS_to_deepbask ,
& compallow_nontuftRS_to_deepbask , display)
CALL synaptic_compmap_construct (thisno,
& num_deepaxax , com_nontuftRS_to_deepaxax ,
& num_nontuftRS_to_deepaxax ,
& ncompallow_nontuftRS_to_deepaxax ,
& compallow_nontuftRS_to_deepaxax , display)
CALL synaptic_compmap_construct (thisno,
& num_deepLTS , com_nontuftRS_to_deepLTS ,
& num_nontuftRS_to_deepLTS ,
& ncompallow_nontuftRS_to_deepLTS ,
& compallow_nontuftRS_to_deepLTS , display)
CALL synaptic_compmap_construct (thisno,
& num_TCR , com_nontuftRS_to_TCR ,
& num_nontuftRS_to_TCR ,
& ncompallow_nontuftRS_to_TCR ,
& compallow_nontuftRS_to_TCR , display)
CALL synaptic_compmap_construct (thisno,
& num_nRT , com_nontuftRS_to_nRT ,
& num_nontuftRS_to_nRT ,
& ncompallow_nontuftRS_to_nRT ,
& compallow_nontuftRS_to_nRT , display)
CALL synaptic_compmap_construct (thisno,
& num_nontuftRS, com_nontuftRS_to_nontuftRS,
& num_nontuftRS_to_nontuftRS,
& ncompallow_nontuftRS_to_nontuftRS,
& compallow_nontuftRS_to_nontuftRS, display)
c Finish construction of synaptic compartment maps.
c Construct gap-junction tables
! axax interneurons a special case
gjtable_supaxax(1,1) = 1
gjtable_supaxax(1,2) = 12
gjtable_supaxax(1,3) = 2
gjtable_supaxax(1,4) = 12
gjtable_deepaxax(1,1) = 1
gjtable_deepaxax(1,2) = 12
gjtable_deepaxax(1,3) = 2
gjtable_deepaxax(1,4) = 12
CALL groucho_gapbld (thisno, num_suppyrRS,
& totaxgj_suppyrRS , gjtable_suppyrRS,
& table_axgjcompallow_suppyrRS,
& num_axgjcompallow_suppyrRS, 0)
CALL groucho_gapbld (thisno, num_suppyrFRB,
& totaxgj_suppyrFRB , gjtable_suppyrFRB,
& table_axgjcompallow_suppyrFRB,
& num_axgjcompallow_suppyrFRB, 0)
call GROUCHO_gapbld_mix (thisno, num_suppyrRS,
& num_suppyrFRB, totaxgj_suppyr, gjtable_suppyr,
& table_axgjcompallow_suppyrRS,
& num_axgjcompallow_suppyrRS, 0)
CALL groucho_gapbld (thisno, num_spinstell,
& totaxgj_spinstell , gjtable_spinstell,
& table_axgjcompallow_spinstell,
& num_axgjcompallow_spinstell, 0)
CALL groucho_gapbld (thisno, num_tuftIB,
& totaxgj_tuftIB , gjtable_tuftIB ,
& table_axgjcompallow_tuftIB ,
& num_axgjcompallow_tuftIB , 0)
CALL groucho_gapbld (thisno, num_tuftRS,
& totaxgj_tuftRS , gjtable_tuftRS ,
& table_axgjcompallow_tuftRS ,
& num_axgjcompallow_tuftRS , 0)
call GROUCHO_gapbld_mix (thisno, num_tuftIB,
& num_tuftRS, totaxgj_tuft, gjtable_tuft,
& table_axgjcompallow_tuftIB,
& num_axgjcompallow_tuftIB, 0)
CALL groucho_gapbld (thisno, num_nontuftRS,
& totaxgj_nontuftRS , gjtable_nontuftRS ,
& table_axgjcompallow_nontuftRS ,
& num_axgjcompallow_nontuftRS , 0)
CALL groucho_gapbld (thisno, num_supbask ,
& totSDgj_supbask , gjtable_supbask ,
& table_SDgjcompallow_supbask ,
& num_SDgjcompallow_supbask , 0)
CALL groucho_gapbld (thisno, num_supLTS ,
& totSDgj_supLTS , gjtable_supLTS ,
& table_SDgjcompallow_supLTS ,
& num_SDgjcompallow_supLTS , 0)
CALL groucho_gapbld (thisno, num_deepbask ,
& totSDgj_deepbask , gjtable_deepbask ,
& table_SDgjcompallow_deepbask ,
& num_SDgjcompallow_deepbask , 0)
CALL groucho_gapbld (thisno, num_deepLTS ,
& totSDgj_deepLTS , gjtable_deepLTS ,
& table_SDgjcompallow_deepLTS ,
& num_SDgjcompallow_deepLTS , 0)
CALL groucho_gapbld (thisno, num_TCR ,
& totaxgj_TCR , gjtable_TCR ,
& table_axgjcompallow_TCR ,
& num_axgjcompallow_TCR , 0)
CALL groucho_gapbld (thisno, num_nRT ,
& totSDgj_nRT , gjtable_nRT ,
& table_SDgjcompallow_nRT ,
& num_SDgjcompallow_nRT , 0)
! Define spread of values for gGABA_nRT_to_TCR
call durand(seed,num_nRT,ranvec_nRT)
do L = 1, num_nRT
gGABA_nRT_to_TCR(L) = 0.7d-3 + 1.4d-3 * ranvec_nRT(L)
end do
! Define tonic currents to different cell types
call durand(seed,num_suppyrRS ,ranvec_suppyrRS )
do L = 1, num_suppyr_RS
curr_suppyrRS (1,L) = -0.025d0 + 0.05d0 *
& ranvec_suppyrRS (L)
end do
call durand(seed,num_suppyrFRB,ranvec_suppyrFRB)
do L = 1, num_suppyr_FRB
curr_suppyrFRB (1,L) = 0.25d0 + 0.1d0 *
& ranvec_suppyrFRB(L)
end do
call durand(seed,num_supbask ,ranvec_supbask )
do L = 1, num_supbask
curr_supbask (1,L) = 0.00d0 + 0.02d0 *
& ranvec_supbask (L)
end do
call durand(seed,num_spinstell,ranvec_spinstell)
do L = 1, num_spinstell
curr_spinstell (1,L) = 0.00d0 + 0.00d0 *
& ranvec_spinstell(L)
end do
call durand(seed,num_tuftIB ,ranvec_tuftIB )
do L = 1, num_tuftIB
! curr_tuftIB (1,L) = 0.10d0 + 0.1d0 *
curr_tuftIB (1,L) = 0.00d0 + 0.1d0 *
! curr_tuftIB (1,L) = -1.00d0 + 0.1d0 * ! ? suppress intrinsic bursting
! curr_tuftIB (1,L) = 1.00d0 + 0.1d0 * ! ? wake up cortex ?
& ranvec_tuftIB (L)
end do
call durand(seed,num_tuftRS ,ranvec_tuftRS )
do L = 1, num_tuftRS
! curr_tuftRS (1,L) = 0.10d0 + 0.1d0 *
curr_tuftRS (1,L) = 0.00d0 + 0.1d0 *
! curr_tuftRS (1,L) = 1.00d0 + 0.1d0 * ! ? wake up cortex?
& ranvec_tuftRS (L)
end do
call durand(seed,num_nontuftRS ,ranvec_nontuftRS )
do L = 1, num_nontuftRS
curr_nontuftRS (1,L) = 0.00d0 + 0.1d0 *
! curr_nontuftRS (1,L) = 0.75d0 + 0.1d0 * ! ? wake up cortex
& ranvec_nontuftRS (L)
end do
call durand(seed,num_nRT ,ranvec_nRT )
do L = 1, num_nRT
curr_nRT (1,L) = 0.10d0 + 0.05d0 *
& ranvec_nRT (L)
end do
! During sz, curr to TCR can be zero
call durand(seed,num_TCR ,ranvec_TCR )
do L = 1, num_TCR
! curr_TCR (1,L) = 1.40d0 + 0.01d0 *
curr_TCR (1,L) = 0.00d0 + 0.01d0 *
& ranvec_TCR (L)
end do
!
! diagnostic recording of TCR injected current:
! open(30,file='data/curr_tcr99.dat')
! write(30,fmt='(f40.35)') curr_tcr(1,99)
seed = 137.d0
O = 0
time = 0.d0
c CODE BELOW FOR "PICROTOXIN": scale all GABA-A
! GOTO 30
z1 = 0.06d0 ! for intracortical IPSCs
z2 = 1.00d0 ! for intrathalamic IPSCs, usual 1.00
gGABA_supbask_to_suppyrRS = z1 * gGABA_supbask_to_suppyrRS
gGABA_supbask_to_suppyrFRB = z1 * gGABA_supbask_to_suppyrFRB
gGABA_supbask_to_supbask = z1 * gGABA_supbask_to_supbask
gGABA_supbask_to_supaxax = z1 * gGABA_supbask_to_supaxax
gGABA_supbask_to_supLTS = z1 * gGABA_supbask_to_supLTS
gGABA_supbask_to_spinstell = z1 * gGABA_supbask_to_spinstell
gGABA_supaxax_to_suppyrRS = z1 * gGABA_supaxax_to_suppyrRS
gGABA_supaxax_to_suppyrFRB = z1 * gGABA_supaxax_to_suppyrFRB
gGABA_supaxax_to_spinstell = z1 * gGABA_supaxax_to_spinstell
gGABA_supaxax_to_tuftIB = z1 * gGABA_supaxax_to_tuftIB
gGABA_supaxax_to_tuftRS = z1 * gGABA_supaxax_to_tuftRS
gGABA_supaxax_to_nontuftRS = z1 * gGABA_supaxax_to_nontuftRS
gGABA_supLTS_to_suppyrRS = z1 * gGABA_supLTS_to_suppyrRS
gGABA_supLTS_to_suppyrFRB = z1 * gGABA_supLTS_to_suppyrFRB
gGABA_supLTS_to_supbask = z1 * gGABA_supLTS_to_supbask
gGABA_supLTS_to_supaxax = z1 * gGABA_supLTS_to_supaxax
gGABA_supLTS_to_supLTS = z1 * gGABA_supLTS_to_supLTS
gGABA_supLTS_to_spinstell = z1 * gGABA_supLTS_to_spinstell
gGABA_supLTS_to_tuftIB = z1 * gGABA_supLTS_to_tuftIB
gGABA_supLTS_to_tuftRS = z1 * gGABA_supLTS_to_tuftRS
gGABA_supLTS_to_deepbask = z1 * gGABA_supLTS_to_deepbask
gGABA_supLTS_to_deepaxax = z1 * gGABA_supLTS_to_deepaxax
gGABA_supLTS_to_deepLTS = z1 * gGABA_supLTS_to_deepLTS
gGABA_supLTS_to_nontuftRS = z1 * gGABA_supLTS_to_nontuftRS
gGABA_deepbask_to_spinstell = z1 * gGABA_deepbask_to_spinstell
gGABA_deepbask_to_tuftIB = z1 * gGABA_deepbask_to_tuftIB
gGABA_deepbask_to_tuftRS = z1 * gGABA_deepbask_to_tuftRS
gGABA_deepbask_to_deepbask = z1 * gGABA_deepbask_to_deepbask
gGABA_deepbask_to_deepaxax = z1 * gGABA_deepbask_to_deepaxax
gGABA_deepbask_to_deepLTS = z1 * gGABA_deepbask_to_deepLTS
gGABA_deepbask_to_nontuftRS = z1 * gGABA_deepbask_to_nontuftRS
gGABA_deepaxax_to_suppyrRS = z1 * gGABA_deepaxax_to_suppyrRS
gGABA_deepaxax_to_suppyrFRB = z1 * gGABA_deepaxax_to_suppyrFRB
gGABA_deepaxax_to_spinstell = z1 * gGABA_deepaxax_to_spinstell
gGABA_deepaxax_to_tuftIB = z1 * gGABA_deepaxax_to_tuftIB
gGABA_deepaxax_to_tuftRS = z1 * gGABA_deepaxax_to_tuftRS
gGABA_deepaxax_to_nontuftRS = z1 * gGABA_deepaxax_to_nontuftRS
gGABA_deepLTS_to_suppyrRS = z1 * gGABA_deepLTS_to_suppyrRS
gGABA_deepLTS_to_suppyrFRB = z1 * gGABA_deepLTS_to_suppyrFRB
gGABA_deepLTS_to_supbask = z1 * gGABA_deepLTS_to_supbask
gGABA_deepLTS_to_supaxax = z1 * gGABA_deepLTS_to_supaxax
gGABA_deepLTS_to_supLTS = z1 * gGABA_deepLTS_to_supLTS
gGABA_deepLTS_to_spinstell = z1 * gGABA_deepLTS_to_spinstell
gGABA_deepLTS_to_tuftIB = z1 * gGABA_deepLTS_to_tuftIB
gGABA_deepLTS_to_tuftRS = z1 * gGABA_deepLTS_to_tuftRS
gGABA_deepLTS_to_deepbask = z1 * gGABA_deepLTS_to_deepbask
gGABA_deepLTS_to_deepaxax = z1 * gGABA_deepLTS_to_deepaxax
gGABA_deepLTS_to_deepLTS = z1 * gGABA_deepLTS_to_deepLTS
gGABA_deepLTS_to_nontuftRS = z1 * gGABA_deepLTS_to_nontuftRS
do L = 1, num_nRT
gGABA_nRT_to_TCR(L) = z2 * gGABA_nRT_to_TCR(L)
end do
gGABA_nRT_to_nRT = z2 * gGABA_nRT_to_nRT
30 CONTINUE
c End "PICROTOXIN" code
! Code below is "NBQX": scale all AMPA
! GOTO 35
! z1 = 1.00d0 ! intracortical e/i
z1 = 1.00d0 ! intracortical e/i ! usual 1.00
z3 = 1.00d0 ! TCR -> cortical i ! usual 1.0
z4 = 1.00d0 ! TCR -> nRT & nontuftRS ->nRT ! usual 1.00
z2 = 2.00d0 ! everything else; note that this may be INCREASED, usual 1.0
gAMPA_suppyrRS_to_suppyrRS= z2 * gAMPA_suppyrRS_to_suppyrRS
gAMPA_suppyrRS_to_suppyrFRB= z2 * gAMPA_suppyrRS_to_suppyrFRB
gAMPA_suppyrRS_to_supbask = z1 * gAMPA_suppyrRS_to_supbask
gAMPA_suppyrRS_to_supaxax = z1 * gAMPA_suppyrRS_to_supaxax
gAMPA_suppyrRS_to_supLTS = z1 * gAMPA_suppyrRS_to_supLTS
gAMPA_suppyrRS_to_spinstell= z2 * gAMPA_suppyrRS_to_spinstell
gAMPA_suppyrRS_to_tuftIB = z2 * gAMPA_suppyrRS_to_tuftIB
gAMPA_suppyrRS_to_tuftRS = z2 * gAMPA_suppyrRS_to_tuftRS
gAMPA_suppyrRS_to_deepbask = z1 * gAMPA_suppyrRS_to_deepbask
gAMPA_suppyrRS_to_deepaxax = z1 * gAMPA_suppyrRS_to_deepaxax
gAMPA_suppyrRS_to_deepLTS = z1 * gAMPA_suppyrRS_to_deepLTS
gAMPA_suppyrRS_to_nontuftRS= z2 * gAMPA_suppyrRS_to_nontuftRS
gAMPA_suppyrFRB_to_suppyrRS= z2 * gAMPA_suppyrFRB_to_suppyrRS
gAMPA_suppyrFRB_to_suppyrFRB=z2 * gAMPA_suppyrFRB_to_suppyrFRB
gAMPA_suppyrFRB_to_supbask =z1 * gAMPA_suppyrFRB_to_supbask
gAMPA_suppyrFRB_to_supaxax =z1 * gAMPA_suppyrFRB_to_supaxax
gAMPA_suppyrFRB_to_supLTS =z1 * gAMPA_suppyrFRB_to_supLTS
gAMPA_suppyrFRB_to_spinstell=z2 * gAMPA_suppyrFRB_to_spinstell
gAMPA_suppyrFRB_to_tuftIB =z2 * gAMPA_suppyrFRB_to_tuftIB
gAMPA_suppyrFRB_to_tuftRS =z2 * gAMPA_suppyrFRB_to_tuftRS
gAMPA_suppyrFRB_to_deepbask =z1 * gAMPA_suppyrFRB_to_deepbask
gAMPA_suppyrFRB_to_deepaxax =z1 * gAMPA_suppyrFRB_to_deepaxax
gAMPA_suppyrFRB_to_deepLTS =z1 * gAMPA_suppyrFRB_to_deepLTS
gAMPA_suppyrFRB_to_nontuftRS=z2 * gAMPA_suppyrFRB_to_nontuftRS
gAMPA_spinstell_to_suppyrRS = z2 * gAMPA_spinstell_to_suppyrRS
gAMPA_spinstell_to_suppyrFRB= z2 * gAMPA_spinstell_to_suppyrFRB
gAMPA_spinstell_to_supbask = z1 * gAMPA_spinstell_to_supbask
gAMPA_spinstell_to_supaxax = z1 * gAMPA_spinstell_to_supaxax
gAMPA_spinstell_to_supLTS = z1 * gAMPA_spinstell_to_supLTS
gAMPA_spinstell_to_spinstell= z2 * gAMPA_spinstell_to_spinstell
gAMPA_spinstell_to_tuftIB = z2 * gAMPA_spinstell_to_tuftIB
gAMPA_spinstell_to_tuftRS = z2 * gAMPA_spinstell_to_tuftRS
gAMPA_spinstell_to_deepbask = z1 * gAMPA_spinstell_to_deepbask
gAMPA_spinstell_to_deepaxax = z1 * gAMPA_spinstell_to_deepaxax
gAMPA_spinstell_to_deepLTS = z1 * gAMPA_spinstell_to_deepLTS
gAMPA_spinstell_to_nontuftRS= z2 * gAMPA_spinstell_to_nontuftRS
gAMPA_tuftIB_to_suppyrRS = z2 * gAMPA_tuftIB_to_suppyrRS
gAMPA_tuftIB_to_suppyrFRB = z2 * gAMPA_tuftIB_to_suppyrFRB
gAMPA_tuftIB_to_supbask = z1 * gAMPA_tuftIB_to_supbask
gAMPA_tuftIB_to_supaxax = z1 * gAMPA_tuftIB_to_supaxax
gAMPA_tuftIB_to_supLTS = z1 * gAMPA_tuftIB_to_supLTS
gAMPA_tuftIB_to_spinstell = z2 * gAMPA_tuftIB_to_spinstell
gAMPA_tuftIB_to_tuftIB = z2 * gAMPA_tuftIB_to_tuftIB
gAMPA_tuftIB_to_tuftRS = z2 * gAMPA_tuftIB_to_tuftRS
gAMPA_tuftIB_to_deepbask = z1 * gAMPA_tuftIB_to_deepbask
gAMPA_tuftIB_to_deepaxax = z1 * gAMPA_tuftIB_to_deepaxax
gAMPA_tuftIB_to_deepLTS = z1 * gAMPA_tuftIB_to_deepLTS
gAMPA_tuftIB_to_nontuftRS = z2 * gAMPA_tuftIB_to_nontuftRS
gAMPA_tuftRS_to_suppyrRS = z2 * gAMPA_tuftRS_to_suppyrRS
gAMPA_tuftRS_to_suppyrFRB = z2 * gAMPA_tuftRS_to_suppyrFRB
gAMPA_tuftRS_to_supbask = z1 * gAMPA_tuftRS_to_supbask
gAMPA_tuftRS_to_supaxax = z1 * gAMPA_tuftRS_to_supaxax
gAMPA_tuftRS_to_supLTS = z1 * gAMPA_tuftRS_to_supLTS
gAMPA_tuftRS_to_spinstell = z2 * gAMPA_tuftRS_to_spinstell
gAMPA_tuftRS_to_tuftIB = z2 * gAMPA_tuftRS_to_tuftIB
gAMPA_tuftRS_to_tuftRS = z2 * gAMPA_tuftRS_to_tuftRS
gAMPA_tuftRS_to_deepbask = z1 * gAMPA_tuftRS_to_deepbask
gAMPA_tuftRS_to_deepaxax = z1 * gAMPA_tuftRS_to_deepaxax
gAMPA_tuftRS_to_deepLTS = z1 * gAMPA_tuftRS_to_deepLTS
gAMPA_tuftRS_to_nontuftRS = z2 * gAMPA_tuftRS_to_nontuftRS
gAMPA_TCR_to_suppyrRS = z2 * gAMPA_TCR_to_suppyrRS
gAMPA_TCR_to_suppyrFRB = z2 * gAMPA_TCR_to_suppyrFRB
gAMPA_TCR_to_supbask = z3 * gAMPA_TCR_to_supbask
gAMPA_TCR_to_supaxax = z3 * gAMPA_TCR_to_supaxax
gAMPA_TCR_to_spinstell = z2 * gAMPA_TCR_to_spinstell
gAMPA_TCR_to_tuftIB = z2 * gAMPA_TCR_to_tuftIB
gAMPA_TCR_to_tuftRS = z2 * gAMPA_TCR_to_tuftRS
gAMPA_TCR_to_deepbask = z3 * gAMPA_TCR_to_deepbask
gAMPA_TCR_to_deepaxax = z3 * gAMPA_TCR_to_deepaxax
gAMPA_TCR_to_nRT = z4 * gAMPA_TCR_to_nRT
gAMPA_TCR_to_nontuftRS = z2 * gAMPA_TCR_to_nontuftRS
gAMPA_nontuftRS_to_suppyrRS = z2 * gAMPA_nontuftRS_to_suppyrRS
gAMPA_nontuftRS_to_suppyrFRB = z2 * gAMPA_nontuftRS_to_suppyrFRB
gAMPA_nontuftRS_to_supbask = z1 * gAMPA_nontuftRS_to_supbask
gAMPA_nontuftRS_to_supaxax = z1 * gAMPA_nontuftRS_to_supaxax
gAMPA_nontuftRS_to_supLTS = z1 * gAMPA_nontuftRS_to_supLTS
gAMPA_nontuftRS_to_spinstell = z2 * gAMPA_nontuftRS_to_spinstell
gAMPA_nontuftRS_to_tuftIB = z2 * gAMPA_nontuftRS_to_tuftIB
gAMPA_nontuftRS_to_tuftRS = z2 * gAMPA_nontuftRS_to_tuftRS
gAMPA_nontuftRS_to_deepbask = z1 * gAMPA_nontuftRS_to_deepbask
gAMPA_nontuftRS_to_deepaxax = z1 * gAMPA_nontuftRS_to_deepaxax
gAMPA_nontuftRS_to_deepLTS = z1 * gAMPA_nontuftRS_to_deepLTS
gAMPA_nontuftRS_to_TCR = z2 * gAMPA_nontuftRS_to_TCR
gAMPA_nontuftRS_to_nRT = z4 * gAMPA_nontuftRS_to_nRT
gAMPA_nontuftRS_to_nontuftRS = z2 * gAMPA_nontuftRS_to_nontuftRS
35 CONTINUE
c End "NBQX" section.
c Code below scales TCR output to cortex (not to nRT), AMPA & NMDA
! goto 60
z = 0.d0
gAMPA_TCR_to_suppyrRS = z * gAMPA_TCR_to_suppyrRS
gNMDA_TCR_to_suppyrRS = z * gNMDA_TCR_to_suppyrRS
gAMPA_TCR_to_suppyrFRB = z * gAMPA_TCR_to_suppyrFRB
gNMDA_TCR_to_suppyrFRB = z * gNMDA_TCR_to_suppyrFRB
gAMPA_TCR_to_supbask = z * gAMPA_TCR_to_supbask
gNMDA_TCR_to_supbask = z * gNMDA_TCR_to_supbask
gAMPA_TCR_to_supaxax = z * gAMPA_TCR_to_supaxax
gNMDA_TCR_to_supaxax = z * gNMDA_TCR_to_supaxax
gAMPA_TCR_to_spinstell = z * gAMPA_TCR_to_spinstell
gNMDA_TCR_to_spinstell = z * gNMDA_TCR_to_spinstell
gAMPA_TCR_to_tuftIB = z * gAMPA_TCR_to_tuftIB
gNMDA_TCR_to_tuftIB = z * gNMDA_TCR_to_tuftIB
gAMPA_TCR_to_tuftRS = z * gAMPA_TCR_to_tuftRS
gNMDA_TCR_to_tuftRS = z * gNMDA_TCR_to_tuftRS
gAMPA_TCR_to_deepbask = z * gAMPA_TCR_to_deepbask
gNMDA_TCR_to_deepbask = z * gNMDA_TCR_to_deepbask
gAMPA_TCR_to_deepaxax = z * gAMPA_TCR_to_deepaxax
gNMDA_TCR_to_deepaxax = z * gNMDA_TCR_to_deepaxax
gAMPA_TCR_to_nontuftRS = z * gAMPA_TCR_to_nontuftRS
gNMDA_TCR_to_nontuftRS = z * gNMDA_TCR_to_nontuftRS
60 CONTINUE
c Code below scales some/all NMDA conductances.
! GOTO 40
z1 = 0.2d0 ! to interneurons
c z1 = 0.5d0 ! to interneurons
! Usual scaling of NMDA to princ. cells, including FRB, is 0.5
z2 = 2.5d0 ! to cort. principal cells, except FRB
z3 = 2.5d0 ! to suppyrFRB
z4 = 0.2d0 ! to TCR and nRT and from TCR to cort. princ.
gNMDA_suppyrRS_to_suppyrRS= z2 *
& gNMDA_suppyrRS_to_suppyrRS
gNMDA_suppyrRS_to_suppyrFRB= z3 *
& gNMDA_suppyrRS_to_suppyrFRB
gNMDA_suppyrRS_to_supbask = z1 *
& gNMDA_suppyrRS_to_supbask
gNMDA_suppyrRS_to_supaxax = z1 *
& gNMDA_suppyrRS_to_supaxax
gNMDA_suppyrRS_to_supLTS = z1 *
& gNMDA_suppyrRS_to_supLTS
gNMDA_suppyrRS_to_spinstell= z2 *
& gNMDA_suppyrRS_to_spinstell
gNMDA_suppyrRS_to_tuftIB = z2 *
& gNMDA_suppyrRS_to_tuftIB
gNMDA_suppyrRS_to_tuftRS = z2 *
& gNMDA_suppyrRS_to_tuftRS
gNMDA_suppyrRS_to_deepbask = z1 *
& gNMDA_suppyrRS_to_deepbask
gNMDA_suppyrRS_to_deepaxax = z1 *
& gNMDA_suppyrRS_to_deepaxax
gNMDA_suppyrRS_to_deepLTS = z1 *
& gNMDA_suppyrRS_to_deepLTS
gNMDA_suppyrRS_to_nontuftRS= z2 *
& gNMDA_suppyrRS_to_nontuftRS
gNMDA_suppyrFRB_to_suppyrRS= z2 *
& gNMDA_suppyrFRB_to_suppyrRS
gNMDA_suppyrFRB_to_suppyrFRB= z3 *
& gNMDA_suppyrFRB_to_suppyrFRB
gNMDA_suppyrFRB_to_supbask = z1 *
& gNMDA_suppyrFRB_to_supbask
gNMDA_suppyrFRB_to_supaxax = z1 *
& gNMDA_suppyrFRB_to_supaxax
gNMDA_suppyrFRB_to_supLTS = z1 *
& gNMDA_suppyrFRB_to_supLTS
gNMDA_suppyrFRB_to_spinstell= z2 *
& gNMDA_suppyrFRB_to_spinstell
gNMDA_suppyrFRB_to_tuftIB = z2 *
& gNMDA_suppyrFRB_to_tuftIB
gNMDA_suppyrFRB_to_tuftRS = z2 *
& gNMDA_suppyrFRB_to_tuftRS
gNMDA_suppyrFRB_to_deepbask = z1 *
& gNMDA_suppyrFRB_to_deepbask
gNMDA_suppyrFRB_to_deepaxax = z1 *
& gNMDA_suppyrFRB_to_deepaxax
gNMDA_suppyrFRB_to_deepLTS = z1 *
& gNMDA_suppyrFRB_to_deepLTS
gNMDA_suppyrFRB_to_nontuftRS= z2 *
& gNMDA_suppyrFRB_to_nontuftRS
gNMDA_spinstell_to_suppyrRS = z2 *
& gNMDA_spinstell_to_suppyrRS
gNMDA_spinstell_to_suppyrFRB= z3 *
& gNMDA_spinstell_to_suppyrFRB
gNMDA_spinstell_to_supbask = z1 *
& gNMDA_spinstell_to_supbask
gNMDA_spinstell_to_supaxax = z1 *
& gNMDA_spinstell_to_supaxax
gNMDA_spinstell_to_supLTS = z1 *
& gNMDA_spinstell_to_supLTS
gNMDA_spinstell_to_spinstell= z2 *
& gNMDA_spinstell_to_spinstell
gNMDA_spinstell_to_tuftIB = z2 *
& gNMDA_spinstell_to_tuftIB
gNMDA_spinstell_to_tuftRS = z2 *
& gNMDA_spinstell_to_tuftRS
gNMDA_spinstell_to_deepbask = z1 *
& gNMDA_spinstell_to_deepbask
gNMDA_spinstell_to_deepaxax = z1 *
& gNMDA_spinstell_to_deepaxax
gNMDA_spinstell_to_deepLTS = z1 *
& gNMDA_spinstell_to_deepLTS
gNMDA_spinstell_to_nontuftRS= z2 *
& gNMDA_spinstell_to_nontuftRS
gNMDA_tuftIB_to_suppyrRS = z2 *
& gNMDA_tuftIB_to_suppyrRS
gNMDA_tuftIB_to_suppyrFRB = z3 *
& gNMDA_tuftIB_to_suppyrFRB
gNMDA_tuftIB_to_supbask = z1 *
& gNMDA_tuftIB_to_supbask
gNMDA_tuftIB_to_supaxax = z1 *
& gNMDA_tuftIB_to_supaxax
gNMDA_tuftIB_to_supLTS = z1 *
& gNMDA_tuftIB_to_supLTS
gNMDA_tuftIB_to_spinstell = z2 *
& gNMDA_tuftIB_to_spinstell
gNMDA_tuftIB_to_tuftIB = z2 *
& gNMDA_tuftIB_to_tuftIB
gNMDA_tuftIB_to_tuftRS = z2 *
& gNMDA_tuftIB_to_tuftRS
gNMDA_tuftIB_to_deepbask = z1 *
& gNMDA_tuftIB_to_deepbask
gNMDA_tuftIB_to_deepaxax = z1 *
& gNMDA_tuftIB_to_deepaxax
gNMDA_tuftIB_to_deepLTS = z1 *
& gNMDA_tuftIB_to_deepLTS
gNMDA_tuftIB_to_nontuftRS = z2 *
& gNMDA_tuftIB_to_nontuftRS
gNMDA_tuftRS_to_suppyrRS = z2 *
& gNMDA_tuftRS_to_suppyrRS
gNMDA_tuftRS_to_suppyrFRB = z3 *
& gNMDA_tuftRS_to_suppyrFRB
gNMDA_tuftRS_to_supbask = z1 *
& gNMDA_tuftRS_to_supbask
gNMDA_tuftRS_to_supaxax = z1 *
& gNMDA_tuftRS_to_supaxax
gNMDA_tuftRS_to_supLTS = z1 *
& gNMDA_tuftRS_to_supLTS
gNMDA_tuftRS_to_spinstell = z2 *
& gNMDA_tuftRS_to_spinstell
gNMDA_tuftRS_to_tuftIB = z2 *
& gNMDA_tuftRS_to_tuftIB
gNMDA_tuftRS_to_tuftRS = z2 *
& gNMDA_tuftRS_to_tuftRS
gNMDA_tuftRS_to_deepbask = z1 *
& gNMDA_tuftRS_to_deepbask
gNMDA_tuftRS_to_deepaxax = z1 *
& gNMDA_tuftRS_to_deepaxax
gNMDA_tuftRS_to_deepLTS = z1 *
& gNMDA_tuftRS_to_deepLTS
gNMDA_tuftRS_to_nontuftRS = z2 *
& gNMDA_tuftRS_to_nontuftRS
gNMDA_TCR_to_suppyrRS = z4 *
& gNMDA_TCR_to_suppyrRS
gNMDA_TCR_to_suppyrFRB = z4 *
& gNMDA_TCR_to_suppyrFRB
gNMDA_TCR_to_supbask = z1 *
& gNMDA_TCR_to_supbask
gNMDA_TCR_to_supaxax = z1 *
& gNMDA_TCR_to_supaxax
gNMDA_TCR_to_spinstell = z4 *
& gNMDA_TCR_to_spinstell
gNMDA_TCR_to_tuftIB = z4 *
& gNMDA_TCR_to_tuftIB
gNMDA_TCR_to_tuftRS = z4 *
& gNMDA_TCR_to_tuftRS
gNMDA_TCR_to_deepbask = z1 *
& gNMDA_TCR_to_deepbask
gNMDA_TCR_to_deepaxax = z1 *
& gNMDA_TCR_to_deepaxax
gNMDA_TCR_to_nRT = z1 *
& gNMDA_TCR_to_nRT
gNMDA_TCR_to_nontuftRS = z4 *
& gNMDA_TCR_to_nontuftRS
gNMDA_nontuftRS_to_suppyrRS = z2 *
& gNMDA_nontuftRS_to_suppyrRS
gNMDA_nontuftRS_to_suppyrFRB = z3 *
& gNMDA_nontuftRS_to_suppyrFRB
gNMDA_nontuftRS_to_supbask = z1 *
& gNMDA_nontuftRS_to_supbask
gNMDA_nontuftRS_to_supaxax = z1 *
& gNMDA_nontuftRS_to_supaxax
gNMDA_nontuftRS_to_supLTS = z1 *
& gNMDA_nontuftRS_to_supLTS
gNMDA_nontuftRS_to_spinstell = z2 *
& gNMDA_nontuftRS_to_spinstell
gNMDA_nontuftRS_to_tuftIB = z2 *
& gNMDA_nontuftRS_to_tuftIB
gNMDA_nontuftRS_to_tuftRS = z2 *
& gNMDA_nontuftRS_to_tuftRS
gNMDA_nontuftRS_to_deepbask = z1 *
& gNMDA_nontuftRS_to_deepbask
gNMDA_nontuftRS_to_deepaxax = z1 *
& gNMDA_nontuftRS_to_deepaxax
gNMDA_nontuftRS_to_deepLTS = z1 *
& gNMDA_nontuftRS_to_deepLTS
gNMDA_nontuftRS_to_TCR = z4 *
& gNMDA_nontuftRS_to_TCR
gNMDA_nontuftRS_to_nRT = z4 *
& gNMDA_nontuftRS_to_nRT
gNMDA_nontuftRS_to_nontuftRS = z2 *
& gNMDA_nontuftRS_to_nontuftRS
40 CONTINUE
c End section scaling all NMDA conductances.
c BEGIN guts of main program.
c Each node takes care of all the cells of a particular type.
c On a node: enumerate the cells of its type; calculate their
c synaptic inputs; set applied currents, including those
c required by ectopic generation; call the numerical integration
c subroutine; set up the distal_axon vector. Each node
c broadcasts its own distal_axon vector to all the others, and also
c receives distal_axon vectors from all the others.
c Then, update outtime array and outctr vector. Repeat.
1000 O = O + 1
time = time + dt
if (time.gt.timtot) goto 2000
IF (THISNO.EQ.0) THEN
c suppyrRS
IF (MOD(O,how_often).eq.0) then
c 1st set suppyrRS synaptic conductances to 0:
do i = 1, numcomp_suppyrRS
do j = 1, num_suppyrRS
gAMPA_suppyrRS(i,j) = 0.d0
gNMDA_suppyrRS(i,j) = 0.d0
gGABA_A_suppyrRS(i,j) = 0.d0
end do
end do
do L = 1, num_suppyrRS
c Handle suppyrRS -> suppyrRS
do i = 1, num_suppyrRS_to_suppyrRS
j = map_suppyrRS_to_suppyrRS(i,L) ! j = presynaptic cell
k = com_suppyrRS_to_suppyrRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrRS(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrRS_to_suppyrRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrRS(k,L) = gAMPA_suppyrRS(k,L) +
& gAMPA_suppyrRS_to_suppyrRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_suppyrRS_to_suppyrRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrRS_to_suppyrRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_suppyrRS_to_suppyrRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrRS_to_suppyrRS
if (gNMDA_suppyrRS(k,L).gt.z)
& gNMDA_suppyrRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle suppyrFRB -> suppyrRS
do i = 1, num_suppyrFRB_to_suppyrRS
j = map_suppyrFRB_to_suppyrRS(i,L) ! j = presynaptic cell
k = com_suppyrFRB_to_suppyrRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrFRB(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrFRB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrFRB_to_suppyrRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrRS(k,L) = gAMPA_suppyrRS(k,L) +
& gAMPA_suppyrFRB_to_suppyrRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_suppyrFRB_to_suppyrRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrFRB_to_suppyrRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_suppyrFRB_to_suppyrRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrFRB_to_suppyrRS
if (gNMDA_suppyrRS(k,L).gt.z)
& gNMDA_suppyrRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle supbask -> suppyrRS
do i = 1, num_supbask_to_suppyrRS
j = map_supbask_to_suppyrRS(i,L) ! j = presynaptic cell
k = com_supbask_to_suppyrRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supbask(j) ! enumerate presyn. spikes
presyntime = outtime_supbask(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supbask_to_suppyrRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_suppyrRS(k,L) = gGABA_A_suppyrRS(k,L) +
& gGABA_supbask_to_suppyrRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle supaxax -> suppyrRS
do i = 1, num_supaxax_to_suppyrRS
j = map_supaxax_to_suppyrRS(i,L) ! j = presynaptic cell
k = com_supaxax_to_suppyrRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supaxax(j) ! enumerate presyn. spikes
presyntime = outtime_supaxax(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supaxax_to_suppyrRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_suppyrRS(k,L) = gGABA_A_suppyrRS(k,L) +
& gGABA_supaxax_to_suppyrRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle supLTS -> suppyrRS
do i = 1, num_supLTS_to_suppyrRS
j = map_supLTS_to_suppyrRS(i,L) ! j = presynaptic cell
k = com_supLTS_to_suppyrRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supLTS(j) ! enumerate presyn. spikes
presyntime = outtime_supLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supLTS_to_suppyrRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_suppyrRS(k,L) = gGABA_A_suppyrRS(k,L) +
& gGABA_supLTS_to_suppyrRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle spinstell -> suppyrRS
do i = 1, num_spinstell_to_suppyrRS
j = map_spinstell_to_suppyrRS(i,L) ! j = presynaptic cell
k = com_spinstell_to_suppyrRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_spinstell(j) ! enumerate presyn. spikes
presyntime = outtime_spinstell(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_spinstell_to_suppyrRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrRS(k,L) = gAMPA_suppyrRS(k,L) +
& gAMPA_spinstell_to_suppyrRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_spinstell_to_suppyrRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_spinstell_to_suppyrRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_spinstell_to_suppyrRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_spinstell_to_suppyrRS
if (gNMDA_suppyrRS(k,L).gt.z)
& gNMDA_suppyrRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftIB -> suppyrRS
do i = 1, num_tuftIB_to_suppyrRS
j = map_tuftIB_to_suppyrRS(i,L) ! j = presynaptic cell
k = com_tuftIB_to_suppyrRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftIB(j) ! enumerate presyn. spikes
presyntime = outtime_tuftIB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftIB_to_suppyrRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrRS(k,L) = gAMPA_suppyrRS(k,L) +
& gAMPA_tuftIB_to_suppyrRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_tuftIB_to_suppyrRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftIB_to_suppyrRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_tuftIB_to_suppyrRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftIB_to_suppyrRS
if (gNMDA_suppyrRS(k,L).gt.z)
& gNMDA_suppyrRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftRS -> suppyrRS
do i = 1, num_tuftRS_to_suppyrRS
j = map_tuftRS_to_suppyrRS(i,L) ! j = presynaptic cell
k = com_tuftRS_to_suppyrRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_tuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftRS_to_suppyrRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrRS(k,L) = gAMPA_suppyrRS(k,L) +
& gAMPA_tuftRS_to_suppyrRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_tuftRS_to_suppyrRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftRS_to_suppyrRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_tuftRS_to_suppyrRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftRS_to_suppyrRS
if (gNMDA_suppyrRS(k,L).gt.z)
& gNMDA_suppyrRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle deepaxax -> suppyrRS
do i = 1, num_deepaxax_to_suppyrRS
j = map_deepaxax_to_suppyrRS(i,L) ! j = presynaptic cell
k = com_deepaxax_to_suppyrRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepaxax(j) ! enumerate presyn. spikes
presyntime = outtime_deepaxax(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepaxax_to_suppyrRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_suppyrRS(k,L) = gGABA_A_suppyrRS(k,L) +
& gGABA_deepaxax_to_suppyrRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepLTS -> suppyrRS
do i = 1, num_deepLTS_to_suppyrRS
j = map_deepLTS_to_suppyrRS(i,L) ! j = presynaptic cell
k = com_deepLTS_to_suppyrRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepLTS(j) ! enumerate presyn. spikes
presyntime = outtime_deepLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepLTS_to_suppyrRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_suppyrRS(k,L) = gGABA_A_suppyrRS(k,L) +
& gGABA_deepLTS_to_suppyrRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle TCR -> suppyrRS
do i = 1, num_TCR_to_suppyrRS
j = map_TCR_to_suppyrRS(i,L) ! j = presynaptic cell
k = com_TCR_to_suppyrRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_TCR(j) ! enumerate presyn. spikes
presyntime = outtime_TCR(m,j)
delta = time - presyntime - thal_cort_delay
IF (DELTA.GE.0.d0) THEN
! AMPA part
dexparg = delta / tauAMPA_TCR_to_suppyrRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrRS(k,L) = gAMPA_suppyrRS(k,L) +
& gAMPA_TCR_to_suppyrRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_TCR_to_suppyrRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_TCR_to_suppyrRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_TCR_to_suppyrRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_TCR_to_suppyrRS
if (gNMDA_suppyrRS(k,L).gt.z)
& gNMDA_suppyrRS(k,L) = z
! end NMDA part
ENDIF ! condition for checking that delta >= 0.
end do ! m
end do ! i
c Handle nontuftRS -> suppyrRS
do i = 1, num_nontuftRS_to_suppyrRS
j = map_nontuftRS_to_suppyrRS(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_suppyrRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_suppyrRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrRS(k,L) = gAMPA_suppyrRS(k,L) +
& gAMPA_nontuftRS_to_suppyrRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_nontuftRS_to_suppyrRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_suppyrRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrRS(k,L) = gNMDA_suppyrRS(k,L) +
& gNMDA_nontuftRS_to_suppyrRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_suppyrRS
if (gNMDA_suppyrRS(k,L).gt.z)
& gNMDA_suppyrRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
end do
c End enumeration of suppyrRS
ENDIF ! if (mod(O,how_often).eq.0)...
! Define phasic currents to suppyrRS cells, ectopic spikes,
! tonic synaptic conductances
if (mod(O,200).eq.0) then
call durand(seed,num_suppyrRS,ranvec_suppyrRS)
do L = 1, num_suppyrRS
if ((ranvec_suppyrRS(L).gt.0.d0).and.
& (ranvec_suppyrRS(L).le.noisepe_suppyrRS)) then
curr_suppyrRS(72,L) = 0.4d0
ectr_suppyrRS = ectr_suppyrRS + 1
else
curr_suppyrRS(72,L) = 0.d0
endif
end do
endif
! Call integration routine for suppyrRS cells
CALL INTEGRATE_suppyrRS (O, time, num_suppyrRS,
& V_suppyrRS, curr_suppyrRS,
& gAMPA_suppyrRS, gNMDA_suppyrRS, gGABA_A_suppyrRS,
& Mg,
& gapcon_suppyrRS ,totaxgj_suppyrRS ,gjtable_suppyrRS, dt,
& totaxgj_suppyr, gjtable_suppyr, num_suppyrFRB,
& vax_suppyrFRB,
& chi_suppyrRS,mnaf_suppyrRS,mnap_suppyrRS,
& hnaf_suppyrRS,mkdr_suppyrRS,mka_suppyrRS,
& hka_suppyrRS,mk2_suppyrRS,hk2_suppyrRS,
& mkm_suppyrRS,mkc_suppyrRS,mkahp_suppyrRS,
& mcat_suppyrRS,hcat_suppyrRS,mcal_suppyrRS,
& mar_suppyrRS,field_1mm_suppyrRS,field_2mm_suppyrRS)
IF (mod(O,5).eq.0) then
! Set up axonal gj voltage array and broadcast it to node 1
! (FRB cells) and receive FRB array - for mixed gj.
do L = 1, num_suppyrRS
vax_suppyrRS (L) = V_suppyrRS (74,L)
end do
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
ENDIF ! vax set-up, broadcasting and receiving
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_suppyrRS
distal_axon_suppyrRS (L) = V_suppyrRS (72,L)
end do
call mpi_allgather (distal_axon_suppyrRS,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ....
c if (mod(O,250).eq.0) then ! write voltages to sysprint
c write(6,213) time,
c & distal_axon_suppyrRS (1),
c & distal_axon_suppyrFRB (1),
c & distal_axon_supbask (1),
c & distal_axon_supaxax (1),
c & distal_axon_supLTS (1),
c & distal_axon_spinstell (1),
c & distal_axon_tuftIB (1),
c & distal_axon_tuftRS (1),
c & distal_axon_nontuftRS (1),
c & distal_axon_deepbask (1),
c & distal_axon_deepaxax (1),
c & distal_axon_deepLTS (1),
c & distal_axon_TCR (1),
c & distal_axon_nRT (1)
213 FORMAT(f7.2,14f6.0)
c endif ! end writing to sysprint
! END thisno = 0
ELSE IF (THISNO.EQ.1) THEN
c suppyrFRB
IF (MOD(O,how_often).eq.0) then
c 1st set suppyrFRB synaptic conductances to 0:
do i = 1, numcomp_suppyrFRB
do j = 1, num_suppyrFRB
gAMPA_suppyrFRB(i,j) = 0.d0
gNMDA_suppyrFRB(i,j) = 0.d0
gGABA_A_suppyrFRB(i,j) = 0.d0
end do
end do
do L = 1, num_suppyrFRB
c Handle suppyrRS -> suppyrFRB
do i = 1, num_suppyrRS_to_suppyrFRB
j = map_suppyrRS_to_suppyrFRB(i,L) ! j = presynaptic cell
k = com_suppyrRS_to_suppyrFRB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrRS(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrRS_to_suppyrFRB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrFRB(k,L) = gAMPA_suppyrFRB(k,L) +
& gAMPA_suppyrRS_to_suppyrFRB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_suppyrRS_to_suppyrFRB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrRS_to_suppyrFRB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_suppyrRS_to_suppyrFRB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrRS_to_suppyrFRB
if (gNMDA_suppyrFRB(k,L).gt.z)
& gNMDA_suppyrFRB(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle suppyrFRB -> suppyrFRB
do i = 1, num_suppyrFRB_to_suppyrFRB
j = map_suppyrFRB_to_suppyrFRB(i,L) ! j = presynaptic cell
k = com_suppyrFRB_to_suppyrFRB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrFRB(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrFRB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrFRB_to_suppyrFRB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrFRB(k,L) = gAMPA_suppyrFRB(k,L) +
& gAMPA_suppyrFRB_to_suppyrFRB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_suppyrFRB_to_suppyrFRB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrFRB_to_suppyrFRB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_suppyrFRB_to_suppyrFRB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrFRB_to_suppyrFRB
if (gNMDA_suppyrFRB(k,L).gt.z)
& gNMDA_suppyrFRB(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle supbask -> suppyrFRB
do i = 1, num_supbask_to_suppyrFRB
j = map_supbask_to_suppyrFRB(i,L) ! j = presynaptic cell
k = com_supbask_to_suppyrFRB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supbask(j) ! enumerate presyn. spikes
presyntime = outtime_supbask(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supbask_to_suppyrFRB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_suppyrFRB(k,L) = gGABA_A_suppyrFRB(k,L) +
& gGABA_supbask_to_suppyrFRB * z
! end GABA-A part
end do ! m
end do ! i
c Handle supaxax -> suppyrFRB
do i = 1, num_supaxax_to_suppyrFRB
j = map_supaxax_to_suppyrFRB(i,L) ! j = presynaptic cell
k = com_supaxax_to_suppyrFRB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supaxax(j) ! enumerate presyn. spikes
presyntime = outtime_supaxax(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supaxax_to_suppyrFRB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_suppyrFRB(k,L) = gGABA_A_suppyrFRB(k,L) +
& gGABA_supaxax_to_suppyrFRB * z
! end GABA-A part
end do ! m
end do ! i
c Handle supLTS -> suppyrFRB
do i = 1, num_supLTS_to_suppyrFRB
j = map_supLTS_to_suppyrFRB(i,L) ! j = presynaptic cell
k = com_supLTS_to_suppyrFRB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supLTS(j) ! enumerate presyn. spikes
presyntime = outtime_supLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supLTS_to_suppyrFRB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_suppyrFRB(k,L) = gGABA_A_suppyrFRB(k,L) +
& gGABA_supLTS_to_suppyrFRB * z
! end GABA-A part
end do ! m
end do ! i
c Handle spinstell -> suppyrFRB
do i = 1, num_spinstell_to_suppyrFRB
j = map_spinstell_to_suppyrFRB(i,L) ! j = presynaptic cell
k = com_spinstell_to_suppyrFRB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_spinstell(j) ! enumerate presyn. spikes
presyntime = outtime_spinstell(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_spinstell_to_suppyrFRB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrFRB(k,L) = gAMPA_suppyrFRB(k,L) +
& gAMPA_spinstell_to_suppyrFRB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_spinstell_to_suppyrFRB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_spinstell_to_suppyrFRB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_spinstell_to_suppyrFRB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_spinstell_to_suppyrFRB
if (gNMDA_suppyrFRB(k,L).gt.z)
& gNMDA_suppyrFRB(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftIB -> suppyrFRB
do i = 1, num_tuftIB_to_suppyrFRB
j = map_tuftIB_to_suppyrFRB(i,L) ! j = presynaptic cell
k = com_tuftIB_to_suppyrFRB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftIB(j) ! enumerate presyn. spikes
presyntime = outtime_tuftIB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftIB_to_suppyrFRB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrFRB(k,L) = gAMPA_suppyrFRB(k,L) +
& gAMPA_tuftIB_to_suppyrFRB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_tuftIB_to_suppyrFRB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftIB_to_suppyrFRB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_tuftIB_to_suppyrFRB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftIB_to_suppyrFRB
if (gNMDA_suppyrFRB(k,L).gt.z)
& gNMDA_suppyrFRB(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftRS -> suppyrFRB
do i = 1, num_tuftRS_to_suppyrFRB
j = map_tuftRS_to_suppyrFRB(i,L) ! j = presynaptic cell
k = com_tuftRS_to_suppyrFRB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_tuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftRS_to_suppyrFRB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrFRB(k,L) = gAMPA_suppyrFRB(k,L) +
& gAMPA_tuftRS_to_suppyrFRB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_tuftRS_to_suppyrFRB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftRS_to_suppyrFRB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_tuftRS_to_suppyrFRB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftRS_to_suppyrFRB
if (gNMDA_suppyrFRB(k,L).gt.z)
& gNMDA_suppyrFRB(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle deepaxax -> suppyrFRB
do i = 1, num_deepaxax_to_suppyrFRB
j = map_deepaxax_to_suppyrFRB(i,L) ! j = presynaptic cell
k = com_deepaxax_to_suppyrFRB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepaxax(j) ! enumerate presyn. spikes
presyntime = outtime_deepaxax(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepaxax_to_suppyrFRB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_suppyrFRB(k,L) = gGABA_A_suppyrFRB(k,L) +
& gGABA_deepaxax_to_suppyrFRB * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepLTS -> suppyrFRB
do i = 1, num_deepLTS_to_suppyrFRB
j = map_deepLTS_to_suppyrFRB(i,L) ! j = presynaptic cell
k = com_deepLTS_to_suppyrFRB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepLTS(j) ! enumerate presyn. spikes
presyntime = outtime_deepLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepLTS_to_suppyrFRB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_suppyrFRB(k,L) = gGABA_A_suppyrFRB(k,L) +
& gGABA_deepLTS_to_suppyrFRB * z
! end GABA-A part
end do ! m
end do ! i
c Handle TCR -> suppyrFRB
do i = 1, num_TCR_to_suppyrFRB
j = map_TCR_to_suppyrFRB(i,L) ! j = presynaptic cell
k = com_TCR_to_suppyrFRB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_TCR(j) ! enumerate presyn. spikes
presyntime = outtime_TCR(m,j)
delta = time - presyntime - thal_cort_delay
IF (DELTA.GE.0.d0) THEN
! AMPA part
dexparg = delta / tauAMPA_TCR_to_suppyrFRB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrFRB(k,L) = gAMPA_suppyrFRB(k,L) +
& gAMPA_TCR_to_suppyrFRB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_TCR_to_suppyrFRB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_TCR_to_suppyrFRB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_TCR_to_suppyrFRB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_TCR_to_suppyrFRB
if (gNMDA_suppyrFRB(k,L).gt.z)
& gNMDA_suppyrFRB(k,L) = z
! end NMDA part
ENDIF ! condition for checking that delta >= 0.
end do ! m
end do ! i
c Handle nontuftRS -> suppyrFRB
do i = 1, num_nontuftRS_to_suppyrFRB
j = map_nontuftRS_to_suppyrFRB(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_suppyrFRB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_suppyrFRB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_suppyrFRB(k,L) = gAMPA_suppyrFRB(k,L) +
& gAMPA_nontuftRS_to_suppyrFRB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_nontuftRS_to_suppyrFRB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_suppyrFRB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_suppyrFRB(k,L) = gNMDA_suppyrFRB(k,L) +
& gNMDA_nontuftRS_to_suppyrFRB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_suppyrFRB
if (gNMDA_suppyrFRB(k,L).gt.z)
& gNMDA_suppyrFRB(k,L) = z
! end NMDA part
end do ! m
end do ! i
end do
c End enumeration of suppyrFRB
ENDIF ! if (mod(O,how_often).eq.0)...
! Define currents to suppyrFRB cells, ectopic spikes,
! tonic synaptic conductances
if (mod(O,200).eq.0) then
call durand(seed,num_suppyrFRB,ranvec_suppyrFRB)
do L = 1, num_suppyrFRB
if ((ranvec_suppyrFRB(L).gt.0.d0).and.
& (ranvec_suppyrFRB(L).le.noisepe_suppyrFRB)) then
curr_suppyrFRB(72,L) = 0.4d0
ectr_suppyrFRB = ectr_suppyrFRB + 1
else
curr_suppyrFRB(72,L) = 0.d0
endif
end do
endif
! Call integration routine for suppyrFRB cells
CALL INTEGRATE_suppyrFRB (O, time, num_suppyrFRB,
& V_suppyrFRB, curr_suppyrFRB,
& gAMPA_suppyrFRB, gNMDA_suppyrFRB, gGABA_A_suppyrFRB,
& Mg,
& gapcon_suppyrFRB ,totaxgj_suppyrFRB ,gjtable_suppyrFRB, dt,
& totaxgj_suppyr, gjtable_suppyr, num_suppyrRS,
& vax_suppyrRS,
& chi_suppyrFRB,mnaf_suppyrFRB,mnap_suppyrFRB,
& hnaf_suppyrFRB,mkdr_suppyrFRB,mka_suppyrFRB,
& hka_suppyrFRB,mk2_suppyrFRB,hk2_suppyrFRB,
& mkm_suppyrFRB,mkc_suppyrFRB,mkahp_suppyrFRB,
& mcat_suppyrFRB,hcat_suppyrFRB,mcal_suppyrFRB,
& mar_suppyrFRB,field_1mm_suppyrFRB,field_2mm_suppyrFRB)
IF (mod(O,5).eq.0) then
! Set up axonal gj voltage array and broadcast it to node 0
! (RS cells) and receive RS array - for mixed gj.
do L = 1, num_suppyrFRB
vax_suppyrFRB (L) = V_suppyrFRB (74,L)
end do
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
ENDIF ! vax set-up, broadcasting and receiving
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_suppyrFRB
distal_axon_suppyrFRB (L) = V_suppyrFRB (72,L)
end do
call mpi_allgather (distal_axon_suppyrFRB,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ....
! END thisno = 1
ELSE IF (THISNO.EQ.2) THEN
c supbask
IF (mod(O,how_often).eq.0) then
c 1st set supbask synaptic conductances to 0:
do i = 1, numcomp_supbask
do j = 1, num_supbask
gAMPA_supbask(i,j) = 0.d0
gNMDA_supbask(i,j) = 0.d0
gGABA_A_supbask(i,j) = 0.d0
end do
end do
do L = 1, num_supbask
c Handle suppyrRS -> supbask
do i = 1, num_suppyrRS_to_supbask
j = map_suppyrRS_to_supbask(i,L) ! j = presynaptic cell
k = com_suppyrRS_to_supbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrRS(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrRS_to_supbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supbask(k,L) = gAMPA_supbask(k,L) +
& gAMPA_suppyrRS_to_supbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_suppyrRS_to_supbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrRS_to_supbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_suppyrRS_to_supbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrRS_to_supbask
if (gNMDA_supbask(k,L).gt.z)
& gNMDA_supbask(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle suppyrFRB -> supbask
do i = 1, num_suppyrFRB_to_supbask
j = map_suppyrFRB_to_supbask(i,L) ! j = presynaptic cell
k = com_suppyrFRB_to_supbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrFRB(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrFRB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrFRB_to_supbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supbask(k,L) = gAMPA_supbask(k,L) +
& gAMPA_suppyrFRB_to_supbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_suppyrFRB_to_supbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrFRB_to_supbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_suppyrFRB_to_supbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrFRB_to_supbask
if (gNMDA_supbask(k,L).gt.z)
& gNMDA_supbask(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle supbask -> supbask
do i = 1, num_supbask_to_supbask
j = map_supbask_to_supbask(i,L) ! j = presynaptic cell
k = com_supbask_to_supbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supbask(j) ! enumerate presyn. spikes
presyntime = outtime_supbask(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supbask_to_supbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_supbask(k,L) = gGABA_A_supbask(k,L) +
& gGABA_supbask_to_supbask * z
! end GABA-A part
end do ! m
end do ! i
c Handle supLTS -> supbask
do i = 1, num_supLTS_to_supbask
j = map_supLTS_to_supbask(i,L) ! j = presynaptic cell
k = com_supLTS_to_supbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supLTS(j) ! enumerate presyn. spikes
presyntime = outtime_supLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supLTS_to_supbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_supbask(k,L) = gGABA_A_supbask(k,L) +
& gGABA_supLTS_to_supbask * z
! end GABA-A part
end do ! m
end do ! i
c Handle spinstell -> supbask
do i = 1, num_spinstell_to_supbask
j = map_spinstell_to_supbask(i,L) ! j = presynaptic cell
k = com_spinstell_to_supbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_spinstell(j) ! enumerate presyn. spikes
presyntime = outtime_spinstell(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_spinstell_to_supbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supbask(k,L) = gAMPA_supbask(k,L) +
& gAMPA_spinstell_to_supbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_spinstell_to_supbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_spinstell_to_supbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_spinstell_to_supbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_spinstell_to_supbask
if (gNMDA_supbask(k,L).gt.z)
& gNMDA_supbask(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftIB -> supbask
do i = 1, num_tuftIB_to_supbask
j = map_tuftIB_to_supbask(i,L) ! j = presynaptic cell
k = com_tuftIB_to_supbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftIB(j) ! enumerate presyn. spikes
presyntime = outtime_tuftIB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftIB_to_supbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supbask(k,L) = gAMPA_supbask(k,L) +
& gAMPA_tuftIB_to_supbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_tuftIB_to_supbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftIB_to_supbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_tuftIB_to_supbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftIB_to_supbask
if (gNMDA_supbask(k,L).gt.z)
& gNMDA_supbask(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftRS -> supbask
do i = 1, num_tuftRS_to_supbask
j = map_tuftRS_to_supbask(i,L) ! j = presynaptic cell
k = com_tuftRS_to_supbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_tuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftRS_to_supbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supbask(k,L) = gAMPA_supbask(k,L) +
& gAMPA_tuftRS_to_supbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_tuftRS_to_supbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftRS_to_supbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_tuftRS_to_supbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftRS_to_supbask
if (gNMDA_supbask(k,L).gt.z)
& gNMDA_supbask(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle deepLTS -> supbask
do i = 1, num_deepLTS_to_supbask
j = map_deepLTS_to_supbask(i,L) ! j = presynaptic cell
k = com_deepLTS_to_supbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepLTS(j) ! enumerate presyn. spikes
presyntime = outtime_deepLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepLTS_to_supbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_supbask(k,L) = gGABA_A_supbask(k,L) +
& gGABA_deepLTS_to_supbask * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepTCR -> supbask
do i = 1, num_TCR_to_supbask
j = map_TCR_to_supbask(i,L) ! j = presynaptic cell
k = com_TCR_to_supbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_TCR(j) ! enumerate presyn. spikes
presyntime = outtime_TCR(m,j)
delta = time - presyntime - thal_cort_delay
IF (DELTA.GE.0.d0) THEN
! AMPA part
dexparg = delta / tauAMPA_TCR_to_supbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supbask(k,L) = gAMPA_supbask(k,L) +
& gAMPA_TCR_to_supbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_TCR_to_supbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_TCR_to_supbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_TCR_to_supbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_TCR_to_supbask
if (gNMDA_supbask(k,L).gt.z)
& gNMDA_supbask(k,L) = z
! end NMDA part
ENDIF ! condition for checking that delta >= 0.
end do ! m
end do ! i
c Handle nontuftRS -> supbask
do i = 1, num_nontuftRS_to_supbask
j = map_nontuftRS_to_supbask(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_supbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_supbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supbask(k,L) = gAMPA_supbask(k,L) +
& gAMPA_nontuftRS_to_supbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_nontuftRS_to_supbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_supbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supbask(k,L) = gNMDA_supbask(k,L) +
& gNMDA_nontuftRS_to_supbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_supbask
if (gNMDA_supbask(k,L).gt.z)
& gNMDA_supbask(k,L) = z
! end NMDA part
end do ! m
end do ! i
end do
c End enumeration of supbask
ENDIF ! if (mod(O,how_often).eq.0) ....
! Define currents to supbask cells, ectopic spikes,
! tonic synaptic conductances
! Call integration routine for supbask cells
CALL INTEGRATE_supbask (O, time, num_supbask ,
& V_supbask , curr_supbask ,
& gAMPA_supbask , gNMDA_supbask , gGABA_A_supbask ,
& Mg,
& gapcon_supbask ,totSDgj_supbask ,gjtable_supbask , dt,
& chi_supbask,mnaf_supbask,mnap_supbask,
& hnaf_supbask,mkdr_supbask,mka_supbask,
& hka_supbask,mk2_supbask,hk2_supbask,
& mkm_supbask,mkc_supbask,mkahp_supbask,
& mcat_supbask,hcat_supbask,mcal_supbask,
& mar_supbask)
if (mod(O,5).eq.0) then
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
endif
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_supbask
distal_axon_supbask (L) = V_supbask (59,L)
end do
call mpi_allgather (distal_axon_supbask,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ....
! END thisno = 2
ELSE IF (THISNO.EQ.3) THEN
c supaxax
IF (mod(O,how_often).eq.0) then
c 1st set supaxax synaptic conductances to 0:
do i = 1, numcomp_supaxax
do j = 1, num_supaxax
gAMPA_supaxax(i,j) = 0.d0
gNMDA_supaxax(i,j) = 0.d0
gGABA_A_supaxax(i,j) = 0.d0
end do
end do
do L = 1, num_supaxax
c Handle suppyrRS -> supaxax
do i = 1, num_suppyrRS_to_supaxax
j = map_suppyrRS_to_supaxax(i,L) ! j = presynaptic cell
k = com_suppyrRS_to_supaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrRS(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrRS_to_supaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supaxax(k,L) = gAMPA_supaxax(k,L) +
& gAMPA_suppyrRS_to_supaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_suppyrRS_to_supaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrRS_to_supaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_suppyrRS_to_supaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrRS_to_supaxax
if (gNMDA_supaxax(k,L).gt.z)
& gNMDA_supaxax(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle suppyrFRB -> supaxax
do i = 1, num_suppyrFRB_to_supaxax
j = map_suppyrFRB_to_supaxax(i,L) ! j = presynaptic cell
k = com_suppyrFRB_to_supaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrFRB(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrFRB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrFRB_to_supaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supaxax(k,L) = gAMPA_supaxax(k,L) +
& gAMPA_suppyrFRB_to_supaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_suppyrFRB_to_supaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrFRB_to_supaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_suppyrFRB_to_supaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrFRB_to_supaxax
if (gNMDA_supaxax(k,L).gt.z)
& gNMDA_supaxax(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle supbask -> supaxax
do i = 1, num_supbask_to_supaxax
j = map_supbask_to_supaxax(i,L) ! j = presynaptic cell
k = com_supbask_to_supaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supbask(j) ! enumerate presyn. spikes
presyntime = outtime_supbask(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supbask_to_supaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_supaxax(k,L) = gGABA_A_supaxax(k,L) +
& gGABA_supbask_to_supaxax * z
! end GABA-A part
end do ! m
end do ! i
c Handle supLTS -> supaxax
do i = 1, num_supLTS_to_supaxax
j = map_supLTS_to_supaxax(i,L) ! j = presynaptic cell
k = com_supLTS_to_supaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supLTS(j) ! enumerate presyn. spikes
presyntime = outtime_supLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supLTS_to_supaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_supaxax(k,L) = gGABA_A_supaxax(k,L) +
& gGABA_supLTS_to_supaxax * z
! end GABA-A part
end do ! m
end do ! i
c Handle spinstell -> supaxax
do i = 1, num_spinstell_to_supaxax
j = map_spinstell_to_supaxax(i,L) ! j = presynaptic cell
k = com_spinstell_to_supaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_spinstell(j) ! enumerate presyn. spikes
presyntime = outtime_spinstell(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_spinstell_to_supaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supaxax(k,L) = gAMPA_supaxax(k,L) +
& gAMPA_spinstell_to_supaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_spinstell_to_supaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_spinstell_to_supaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_spinstell_to_supaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_spinstell_to_supaxax
if (gNMDA_supaxax(k,L).gt.z)
& gNMDA_supaxax(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftIB -> supaxax
do i = 1, num_tuftIB_to_supaxax
j = map_tuftIB_to_supaxax(i,L) ! j = presynaptic cell
k = com_tuftIB_to_supaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftIB(j) ! enumerate presyn. spikes
presyntime = outtime_tuftIB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftIB_to_supaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supaxax(k,L) = gAMPA_supaxax(k,L) +
& gAMPA_tuftIB_to_supaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_tuftIB_to_supaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftIB_to_supaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_tuftIB_to_supaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftIB_to_supaxax
if (gNMDA_supaxax(k,L).gt.z)
& gNMDA_supaxax(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftRS -> supaxax
do i = 1, num_tuftRS_to_supaxax
j = map_tuftRS_to_supaxax(i,L) ! j = presynaptic cell
k = com_tuftRS_to_supaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_tuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftRS_to_supaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supaxax(k,L) = gAMPA_supaxax(k,L) +
& gAMPA_tuftRS_to_supaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_tuftRS_to_supaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftRS_to_supaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_tuftRS_to_supaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftRS_to_supaxax
if (gNMDA_supaxax(k,L).gt.z)
& gNMDA_supaxax(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle deepLTS -> supaxax
do i = 1, num_deepLTS_to_supaxax
j = map_deepLTS_to_supaxax(i,L) ! j = presynaptic cell
k = com_deepLTS_to_supaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepLTS(j) ! enumerate presyn. spikes
presyntime = outtime_deepLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepLTS_to_supaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_supaxax(k,L) = gGABA_A_supaxax(k,L) +
& gGABA_deepLTS_to_supaxax * z
! end GABA-A part
end do ! m
end do ! i
c Handle TCR -> supaxax
do i = 1, num_TCR_to_supaxax
j = map_TCR_to_supaxax(i,L) ! j = presynaptic cell
k = com_TCR_to_supaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_TCR(j) ! enumerate presyn. spikes
presyntime = outtime_TCR(m,j)
delta = time - presyntime - thal_cort_delay
IF (DELTA.GE.0.d0) THEN
! AMPA part
dexparg = delta / tauAMPA_TCR_to_supaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supaxax(k,L) = gAMPA_supaxax(k,L) +
& gAMPA_TCR_to_supaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_TCR_to_supaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_TCR_to_supaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_TCR_to_supaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_TCR_to_supaxax
if (gNMDA_supaxax(k,L).gt.z)
& gNMDA_supaxax(k,L) = z
! end NMDA part
ENDIF ! condition for checking that delta >= 0.
end do ! m
end do ! i
c Handle nontuftRS -> supaxax
do i = 1, num_nontuftRS_to_supaxax
j = map_nontuftRS_to_supaxax(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_supaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_supaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supaxax(k,L) = gAMPA_supaxax(k,L) +
& gAMPA_nontuftRS_to_supaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_nontuftRS_to_supaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_supaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supaxax(k,L) = gNMDA_supaxax(k,L) +
& gNMDA_nontuftRS_to_supaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_supaxax
if (gNMDA_supaxax(k,L).gt.z)
& gNMDA_supaxax(k,L) = z
! end NMDA part
end do ! m
end do ! i
end do
c End enumeration of supaxax
ENDIF ! if (mod(O,how_often).eq.0) ...
! Define currents to supaxax cells, ectopic spikes,
! tonic synaptic conductances
! Call integration routine for supaxax cells
CALL INTEGRATE_supaxax (O, time, num_supaxax ,
& V_supaxax , curr_supaxax ,
& gAMPA_supaxax , gNMDA_supaxax , gGABA_A_supaxax ,
& Mg,
& gapcon_supaxax ,totSDgj_supaxax ,gjtable_supaxax , dt,
& chi_supaxax,mnaf_supaxax,mnap_supaxax,
& hnaf_supaxax,mkdr_supaxax,mka_supaxax,
& hka_supaxax,mk2_supaxax,hk2_supaxax,
& mkm_supaxax,mkc_supaxax,mkahp_supaxax,
& mcat_supaxax,hcat_supaxax,mcal_supaxax,
& mar_supaxax)
if (mod(O,5).eq.0) then
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
endif
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_supaxax
distal_axon_supaxax (L) = V_supaxax (59,L)
end do
call mpi_allgather (distal_axon_supaxax,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ...
! END thisno = 3
ELSE IF (THISNO.EQ.4) THEN
c supLTS
IF (mod(O,how_often).eq.0) then
c 1st set supLTS synaptic conductances to 0:
do i = 1, numcomp_supLTS
do j = 1, num_supLTS
gAMPA_supLTS(i,j) = 0.d0
gNMDA_supLTS(i,j) = 0.d0
gGABA_A_supLTS(i,j) = 0.d0
end do
end do
do L = 1, num_supLTS
c Handle suppyrRS -> supLTS
do i = 1, num_suppyrRS_to_supLTS
j = map_suppyrRS_to_supLTS(i,L) ! j = presynaptic cell
k = com_suppyrRS_to_supLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrRS(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrRS_to_supLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supLTS(k,L) = gAMPA_supLTS(k,L) +
& gAMPA_suppyrRS_to_supLTS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supLTS(k,L) = gNMDA_supLTS(k,L) +
& gNMDA_suppyrRS_to_supLTS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrRS_to_supLTS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supLTS(k,L) = gNMDA_supLTS(k,L) +
& gNMDA_suppyrRS_to_supLTS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrRS_to_supLTS
if (gNMDA_supLTS(k,L).gt.z)
& gNMDA_supLTS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle suppyrFRB -> supLTS
do i = 1, num_suppyrFRB_to_supLTS
j = map_suppyrFRB_to_supLTS(i,L) ! j = presynaptic cell
k = com_suppyrFRB_to_supLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrFRB(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrFRB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrFRB_to_supLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supLTS(k,L) = gAMPA_supLTS(k,L) +
& gAMPA_suppyrFRB_to_supLTS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supLTS(k,L) = gNMDA_supLTS(k,L) +
& gNMDA_suppyrFRB_to_supLTS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrFRB_to_supLTS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supLTS(k,L) = gNMDA_supLTS(k,L) +
& gNMDA_suppyrFRB_to_supLTS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrFRB_to_supLTS
if (gNMDA_supLTS(k,L).gt.z)
& gNMDA_supLTS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle supbask -> supLTS
do i = 1, num_supbask_to_supLTS
j = map_supbask_to_supLTS(i,L) ! j = presynaptic cell
k = com_supbask_to_supLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supbask(j) ! enumerate presyn. spikes
presyntime = outtime_supbask(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supbask_to_supLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_supLTS(k,L) = gGABA_A_supLTS(k,L) +
& gGABA_supbask_to_supLTS * z
! end GABA-A part
end do ! m
end do ! i
c Handle supLTS -> supLTS
do i = 1, num_supLTS_to_supLTS
j = map_supLTS_to_supLTS(i,L) ! j = presynaptic cell
k = com_supLTS_to_supLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supLTS(j) ! enumerate presyn. spikes
presyntime = outtime_supLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supLTS_to_supLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_supLTS(k,L) = gGABA_A_supLTS(k,L) +
& gGABA_supLTS_to_supLTS * z
! end GABA-A part
end do ! m
end do ! i
c Handle spinstell -> supLTS
do i = 1, num_spinstell_to_supLTS
j = map_spinstell_to_supLTS(i,L) ! j = presynaptic cell
k = com_spinstell_to_supLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_spinstell(j) ! enumerate presyn. spikes
presyntime = outtime_spinstell(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_spinstell_to_supLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supLTS(k,L) = gAMPA_supLTS(k,L) +
& gAMPA_spinstell_to_supLTS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supLTS(k,L) = gNMDA_supLTS(k,L) +
& gNMDA_spinstell_to_supLTS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_spinstell_to_supLTS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supLTS(k,L) = gNMDA_supLTS(k,L) +
& gNMDA_spinstell_to_supLTS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_spinstell_to_supLTS
if (gNMDA_supLTS(k,L).gt.z)
& gNMDA_supLTS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftIB -> supLTS
do i = 1, num_tuftIB_to_supLTS
j = map_tuftIB_to_supLTS(i,L) ! j = presynaptic cell
k = com_tuftIB_to_supLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftIB(j) ! enumerate presyn. spikes
presyntime = outtime_tuftIB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftIB_to_supLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supLTS(k,L) = gAMPA_supLTS(k,L) +
& gAMPA_tuftIB_to_supLTS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supLTS(k,L) = gNMDA_supLTS(k,L) +
& gNMDA_tuftIB_to_supLTS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftIB_to_supLTS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supLTS(k,L) = gNMDA_supLTS(k,L) +
& gNMDA_tuftIB_to_supLTS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftIB_to_supLTS
if (gNMDA_supLTS(k,L).gt.z)
& gNMDA_supLTS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftRS -> supLTS
do i = 1, num_tuftRS_to_supLTS
j = map_tuftRS_to_supLTS(i,L) ! j = presynaptic cell
k = com_tuftRS_to_supLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_tuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftRS_to_supLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supLTS(k,L) = gAMPA_supLTS(k,L) +
& gAMPA_tuftRS_to_supLTS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supLTS(k,L) = gNMDA_supLTS(k,L) +
& gNMDA_tuftRS_to_supLTS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftRS_to_supLTS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supLTS(k,L) = gNMDA_supLTS(k,L) +
& gNMDA_tuftRS_to_supLTS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftRS_to_supLTS
if (gNMDA_supLTS(k,L).gt.z)
& gNMDA_supLTS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle deepLTS -> supLTS
do i = 1, num_deepLTS_to_supLTS
j = map_deepLTS_to_supLTS(i,L) ! j = presynaptic cell
k = com_deepLTS_to_supLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepLTS(j) ! enumerate presyn. spikes
presyntime = outtime_deepLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepLTS_to_supLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_supLTS(k,L) = gGABA_A_supLTS(k,L) +
& gGABA_deepLTS_to_supLTS * z
! end GABA-A part
end do ! m
end do ! i
c Handle nontuftRS -> supLTS
do i = 1, num_nontuftRS_to_supLTS
j = map_nontuftRS_to_supLTS(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_supLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_supLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_supLTS(k,L) = gAMPA_supLTS(k,L) +
& gAMPA_nontuftRS_to_supLTS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_supLTS(k,L) = gNMDA_supLTS(k,L) +
& gNMDA_nontuftRS_to_supLTS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_supLTS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_supLTS(k,L) = gNMDA_supLTS(k,L) +
& gNMDA_nontuftRS_to_supLTS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_supLTS
if (gNMDA_supLTS(k,L).gt.z)
& gNMDA_supLTS(k,L) = z
! end NMDA part
end do ! m
end do ! i
end do
c End enumeration of supLTS
ENDIF ! if (mod(O,how_often).eq.0) ...
! Define currents to supLTS cells, ectopic spikes,
! tonic synaptic conductances
! Call integration routine for supLTS cells
CALL INTEGRATE_supLTS (O, time, num_supLTS ,
& V_supLTS , curr_supLTS ,
& gAMPA_supLTS , gNMDA_supLTS , gGABA_A_supLTS ,
& Mg,
& gapcon_supLTS ,totSDgj_supLTS ,gjtable_supLTS , dt,
& chi_supLTS,mnaf_supLTS,mnap_supLTS,
& hnaf_supLTS,mkdr_supLTS,mka_supLTS,
& hka_supLTS,mk2_supLTS,hk2_supLTS,
& mkm_supLTS,mkc_supLTS,mkahp_supLTS,
& mcat_supLTS,hcat_supLTS,mcal_supLTS,
& mar_supLTS)
if (mod(O,5).eq.0) then
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
endif
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_supLTS
distal_axon_supLTS (L) = V_supLTS (59,L)
end do
call mpi_allgather (distal_axon_supLTS,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ...
! END thisno = 4
ELSE IF (THISNO.EQ.5) THEN
c spinstell
IF (mod(O,how_often).eq.0) then
c 1st set spinstell synaptic conductances to 0:
do i = 1, numcomp_spinstell
do j = 1, num_spinstell
gAMPA_spinstell(i,j) = 0.d0
gNMDA_spinstell(i,j) = 0.d0
gGABA_A_spinstell(i,j) = 0.d0
end do
end do
do L = 1, num_spinstell
c Handle suppyrRS -> spinstell
do i = 1, num_suppyrRS_to_spinstell
j = map_suppyrRS_to_spinstell(i,L) ! j = presynaptic cell
k = com_suppyrRS_to_spinstell(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrRS(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrRS_to_spinstell
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_spinstell(k,L) = gAMPA_spinstell(k,L) +
& gAMPA_suppyrRS_to_spinstell * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_suppyrRS_to_spinstell * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrRS_to_spinstell
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_suppyrRS_to_spinstell * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrRS_to_spinstell
if (gNMDA_spinstell(k,L).gt.z)
& gNMDA_spinstell(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle suppyrFRB -> spinstell
do i = 1, num_suppyrFRB_to_spinstell
j = map_suppyrFRB_to_spinstell(i,L) ! j = presynaptic cell
k = com_suppyrFRB_to_spinstell(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrFRB(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrFRB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrFRB_to_spinstell
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_spinstell(k,L) = gAMPA_spinstell(k,L) +
& gAMPA_suppyrFRB_to_spinstell * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_suppyrFRB_to_spinstell * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrFRB_to_spinstell
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_suppyrFRB_to_spinstell * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrFRB_to_spinstell
if (gNMDA_spinstell(k,L).gt.z)
& gNMDA_spinstell(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle supbask -> spinstell
do i = 1, num_supbask_to_spinstell
j = map_supbask_to_spinstell(i,L) ! j = presynaptic cell
k = com_supbask_to_spinstell(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supbask(j) ! enumerate presyn. spikes
presyntime = outtime_supbask(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supbask_to_spinstell
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_spinstell(k,L) = gGABA_A_spinstell(k,L) +
& gGABA_supbask_to_spinstell * z
! end GABA-A part
end do ! m
end do ! i
c Handle supaxax -> spinstell
do i = 1, num_supaxax_to_spinstell
j = map_supaxax_to_spinstell(i,L) ! j = presynaptic cell
k = com_supaxax_to_spinstell(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supaxax(j) ! enumerate presyn. spikes
presyntime = outtime_supaxax(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supaxax_to_spinstell
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_spinstell(k,L) = gGABA_A_spinstell(k,L) +
& gGABA_supaxax_to_spinstell * z
! end GABA-A part
end do ! m
end do ! i
c Handle supLTS -> spinstell
do i = 1, num_supLTS_to_spinstell
j = map_supLTS_to_spinstell(i,L) ! j = presynaptic cell
k = com_supLTS_to_spinstell(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supLTS(j) ! enumerate presyn. spikes
presyntime = outtime_supLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supLTS_to_spinstell
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_spinstell(k,L) = gGABA_A_spinstell(k,L) +
& gGABA_supLTS_to_spinstell * z
! end GABA-A part
end do ! m
end do ! i
c Handle spinstell -> spinstell
do i = 1, num_spinstell_to_spinstell
j = map_spinstell_to_spinstell(i,L) ! j = presynaptic cell
k = com_spinstell_to_spinstell(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_spinstell(j) ! enumerate presyn. spikes
presyntime = outtime_spinstell(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_spinstell_to_spinstell
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_spinstell(k,L) = gAMPA_spinstell(k,L) +
& gAMPA_spinstell_to_spinstell * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_spinstell_to_spinstell * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_spinstell_to_spinstell
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_spinstell_to_spinstell * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_spinstell_to_spinstell
if (gNMDA_spinstell(k,L).gt.z)
& gNMDA_spinstell(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftIB -> spinstell
do i = 1, num_tuftIB_to_spinstell
j = map_tuftIB_to_spinstell(i,L) ! j = presynaptic cell
k = com_tuftIB_to_spinstell(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftIB(j) ! enumerate presyn. spikes
presyntime = outtime_tuftIB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftIB_to_spinstell
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_spinstell(k,L) = gAMPA_spinstell(k,L) +
& gAMPA_tuftIB_to_spinstell * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_tuftIB_to_spinstell * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftIB_to_spinstell
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_tuftIB_to_spinstell * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftIB_to_spinstell
if (gNMDA_spinstell(k,L).gt.z)
& gNMDA_spinstell(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftRS -> spinstell
do i = 1, num_tuftRS_to_spinstell
j = map_tuftRS_to_spinstell(i,L) ! j = presynaptic cell
k = com_tuftRS_to_spinstell(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_tuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftRS_to_spinstell
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_spinstell(k,L) = gAMPA_spinstell(k,L) +
& gAMPA_tuftRS_to_spinstell * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_tuftRS_to_spinstell * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftRS_to_spinstell
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_tuftRS_to_spinstell * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftRS_to_spinstell
if (gNMDA_spinstell(k,L).gt.z)
& gNMDA_spinstell(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle deepbask -> spinstell
do i = 1, num_deepbask_to_spinstell
j = map_deepbask_to_spinstell(i,L) ! j = presynaptic cell
k = com_deepbask_to_spinstell(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepbask(j) ! enumerate presyn. spikes
presyntime = outtime_deepbask(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepbask_to_spinstell
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_spinstell(k,L) = gGABA_A_spinstell(k,L) +
& gGABA_deepbask_to_spinstell * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepaxax -> spinstell
do i = 1, num_deepaxax_to_spinstell
j = map_deepaxax_to_spinstell(i,L) ! j = presynaptic cell
k = com_deepaxax_to_spinstell(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepaxax(j) ! enumerate presyn. spikes
presyntime = outtime_deepaxax(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepaxax_to_spinstell
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_spinstell(k,L) = gGABA_A_spinstell(k,L) +
& gGABA_deepaxax_to_spinstell * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepLTS -> spinstell
do i = 1, num_deepLTS_to_spinstell
j = map_deepLTS_to_spinstell(i,L) ! j = presynaptic cell
k = com_deepLTS_to_spinstell(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepLTS(j) ! enumerate presyn. spikes
presyntime = outtime_deepLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepLTS_to_spinstell
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_spinstell(k,L) = gGABA_A_spinstell(k,L) +
& gGABA_deepLTS_to_spinstell * z
! end GABA-A part
end do ! m
end do ! i
c Handle TCR -> spinstell
do i = 1, num_TCR_to_spinstell
j = map_TCR_to_spinstell(i,L) ! j = presynaptic cell
k = com_TCR_to_spinstell(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_TCR(j) ! enumerate presyn. spikes
presyntime = outtime_TCR(m,j)
delta = time - presyntime - thal_cort_delay
IF (DELTA.GE.0.d0) THEN
! AMPA part
dexparg = delta / tauAMPA_TCR_to_spinstell
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_spinstell(k,L) = gAMPA_spinstell(k,L) +
& gAMPA_TCR_to_spinstell * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_TCR_to_spinstell * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_TCR_to_spinstell
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_TCR_to_spinstell * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_TCR_to_spinstell
if (gNMDA_spinstell(k,L).gt.z)
& gNMDA_spinstell(k,L) = z
! end NMDA part
ENDIF ! condition for checking that delta >= 0.
end do ! m
end do ! i
c Handle nontuftRS -> spinstell
do i = 1, num_nontuftRS_to_spinstell
j = map_nontuftRS_to_spinstell(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_spinstell(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_spinstell
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_spinstell(k,L) = gAMPA_spinstell(k,L) +
& gAMPA_nontuftRS_to_spinstell * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_nontuftRS_to_spinstell * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_spinstell
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_spinstell(k,L) = gNMDA_spinstell(k,L) +
& gNMDA_nontuftRS_to_spinstell * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_spinstell
if (gNMDA_spinstell(k,L).gt.z)
& gNMDA_spinstell(k,L) = z
! end NMDA part
end do ! m
end do ! i
end do
c End enumeration of spinstell
ENDIF ! if (mod(O,how_often).eq.0) ...
! Define currents to spinstell cells, ectopic spikes,
! tonic synaptic conductances
! Call integration routine for spinstell cells
CALL INTEGRATE_spinstell (O, time, num_spinstell,
& V_spinstell, curr_spinstell,
& gAMPA_spinstell, gNMDA_spinstell, gGABA_A_spinstell,
& Mg,
& gapcon_spinstell,totaxgj_spinstell,gjtable_spinstell, dt,
& chi_spinstell,mnaf_spinstell,mnap_spinstell,
& hnaf_spinstell,mkdr_spinstell,mka_spinstell,
& hka_spinstell,mk2_spinstell,hk2_spinstell,
& mkm_spinstell,mkc_spinstell,mkahp_spinstell,
& mcat_spinstell,hcat_spinstell,mcal_spinstell,
& mar_spinstell)
if (mod(O,5).eq.0) then
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
endif
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_spinstell
distal_axon_spinstell (L) = V_spinstell (57,L)
end do
call mpi_allgather (distal_axon_spinstell,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ...
! END thisno = 5
ELSE IF (THISNO.EQ.6) THEN
c tuftIB
IF (mod(O,how_often).eq.0) then
c 1st set tuftIB synaptic conductances to 0:
do i = 1, numcomp_tuftIB
do j = 1, num_tuftIB
gAMPA_tuftIB(i,j) = 0.d0
gNMDA_tuftIB(i,j) = 0.d0
gGABA_A_tuftIB(i,j) = 0.d0
end do
end do
do L = 1, num_tuftIB
c Handle suppyrRS -> tuftIB
do i = 1, num_suppyrRS_to_tuftIB
j = map_suppyrRS_to_tuftIB(i,L) ! j = presynaptic cell
k = com_suppyrRS_to_tuftIB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrRS(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrRS_to_tuftIB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftIB(k,L) = gAMPA_tuftIB(k,L) +
& gAMPA_suppyrRS_to_tuftIB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_suppyrRS_to_tuftIB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrRS_to_tuftIB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_suppyrRS_to_tuftIB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrRS_to_tuftIB
if (gNMDA_tuftIB(k,L).gt.z)
& gNMDA_tuftIB(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle suppyrFRB -> tuftIB
do i = 1, num_suppyrFRB_to_tuftIB
j = map_suppyrFRB_to_tuftIB(i,L) ! j = presynaptic cell
k = com_suppyrFRB_to_tuftIB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrFRB(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrFRB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrFRB_to_tuftIB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftIB(k,L) = gAMPA_tuftIB(k,L) +
& gAMPA_suppyrFRB_to_tuftIB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_suppyrFRB_to_tuftIB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrFRB_to_tuftIB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_suppyrFRB_to_tuftIB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrFRB_to_tuftIB
if (gNMDA_tuftIB(k,L).gt.z)
& gNMDA_tuftIB(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle supaxax -> tuftIB
do i = 1, num_supaxax_to_tuftIB
j = map_supaxax_to_tuftIB(i,L) ! j = presynaptic cell
k = com_supaxax_to_tuftIB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supaxax(j) ! enumerate presyn. spikes
presyntime = outtime_supaxax(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supaxax_to_tuftIB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_tuftIB(k,L) = gGABA_A_tuftIB(k,L) +
& gGABA_supaxax_to_tuftIB * z
! end GABA-A part
end do ! m
end do ! i
c Handle supLTS -> tuftIB
do i = 1, num_supLTS_to_tuftIB
j = map_supLTS_to_tuftIB(i,L) ! j = presynaptic cell
k = com_supLTS_to_tuftIB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supLTS(j) ! enumerate presyn. spikes
presyntime = outtime_supLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supLTS_to_tuftIB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_tuftIB(k,L) = gGABA_A_tuftIB(k,L) +
& gGABA_supLTS_to_tuftIB * z
! end GABA-A part
end do ! m
end do ! i
c Handle spinstell -> tuftIB
do i = 1, num_spinstell_to_tuftIB
j = map_spinstell_to_tuftIB(i,L) ! j = presynaptic cell
k = com_spinstell_to_tuftIB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_spinstell(j) ! enumerate presyn. spikes
presyntime = outtime_spinstell(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_spinstell_to_tuftIB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftIB(k,L) = gAMPA_tuftIB(k,L) +
& gAMPA_spinstell_to_tuftIB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_spinstell_to_tuftIB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_spinstell_to_tuftIB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_spinstell_to_tuftIB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_spinstell_to_tuftIB
if (gNMDA_tuftIB(k,L).gt.z)
& gNMDA_tuftIB(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftIB -> tuftIB
do i = 1, num_tuftIB_to_tuftIB
j = map_tuftIB_to_tuftIB(i,L) ! j = presynaptic cell
k = com_tuftIB_to_tuftIB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftIB(j) ! enumerate presyn. spikes
presyntime = outtime_tuftIB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftIB_to_tuftIB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftIB(k,L) = gAMPA_tuftIB(k,L) +
& gAMPA_tuftIB_to_tuftIB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_tuftIB_to_tuftIB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftIB_to_tuftIB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_tuftIB_to_tuftIB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftIB_to_tuftIB
if (gNMDA_tuftIB(k,L).gt.z)
& gNMDA_tuftIB(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftRS -> tuftIB
do i = 1, num_tuftRS_to_tuftIB
j = map_tuftRS_to_tuftIB(i,L) ! j = presynaptic cell
k = com_tuftRS_to_tuftIB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_tuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftRS_to_tuftIB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftIB(k,L) = gAMPA_tuftIB(k,L) +
& gAMPA_tuftRS_to_tuftIB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_tuftRS_to_tuftIB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftRS_to_tuftIB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_tuftRS_to_tuftIB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftRS_to_tuftIB
if (gNMDA_tuftIB(k,L).gt.z)
& gNMDA_tuftIB(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle deepbask -> tuftIB
do i = 1, num_deepbask_to_tuftIB
j = map_deepbask_to_tuftIB(i,L) ! j = presynaptic cell
k = com_deepbask_to_tuftIB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepbask(j) ! enumerate presyn. spikes
presyntime = outtime_deepbask(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepbask_to_tuftIB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_tuftIB(k,L) = gGABA_A_tuftIB(k,L) +
& gGABA_deepbask_to_tuftIB * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepaxax -> tuftIB
do i = 1, num_deepaxax_to_tuftIB
j = map_deepaxax_to_tuftIB(i,L) ! j = presynaptic cell
k = com_deepaxax_to_tuftIB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepaxax(j) ! enumerate presyn. spikes
presyntime = outtime_deepaxax(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepaxax_to_tuftIB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_tuftIB(k,L) = gGABA_A_tuftIB(k,L) +
& gGABA_deepaxax_to_tuftIB * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepLTS -> tuftIB
do i = 1, num_deepLTS_to_tuftIB
j = map_deepLTS_to_tuftIB(i,L) ! j = presynaptic cell
k = com_deepLTS_to_tuftIB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepLTS(j) ! enumerate presyn. spikes
presyntime = outtime_deepLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepLTS_to_tuftIB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_tuftIB(k,L) = gGABA_A_tuftIB(k,L) +
& gGABA_deepLTS_to_tuftIB * z
! end GABA-A part
end do ! m
end do ! i
c Handle TCR -> tuftIB
do i = 1, num_TCR_to_tuftIB
j = map_TCR_to_tuftIB(i,L) ! j = presynaptic cell
k = com_TCR_to_tuftIB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_TCR(j) ! enumerate presyn. spikes
presyntime = outtime_TCR(m,j)
delta = time - presyntime - thal_cort_delay
IF (DELTA.GE.0.d0) THEN
! AMPA part
dexparg = delta / tauAMPA_TCR_to_tuftIB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftIB(k,L) = gAMPA_tuftIB(k,L) +
& gAMPA_TCR_to_tuftIB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_TCR_to_tuftIB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_TCR_to_tuftIB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_TCR_to_tuftIB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_TCR_to_tuftIB
if (gNMDA_tuftIB(k,L).gt.z)
& gNMDA_tuftIB(k,L) = z
! end NMDA part
ENDIF ! condition for checking that delta >= 0.
end do ! m
end do ! i
c Handle nontuftRS -> tuftIB
do i = 1, num_nontuftRS_to_tuftIB
j = map_nontuftRS_to_tuftIB(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_tuftIB(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_tuftIB
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftIB(k,L) = gAMPA_tuftIB(k,L) +
& gAMPA_nontuftRS_to_tuftIB * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_nontuftRS_to_tuftIB * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_tuftIB
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftIB(k,L) = gNMDA_tuftIB(k,L) +
& gNMDA_nontuftRS_to_tuftIB * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_tuftIB
if (gNMDA_tuftIB(k,L).gt.z)
& gNMDA_tuftIB(k,L) = z
! end NMDA part
end do ! m
end do ! i
end do
c End enumeration of tuftIB
ENDIF ! if (mod(O,how_often).eq.0) ....
! Define currents to tuftIB cells, ectopic spikes,
! tonic synaptic conductances
if (mod(O,200).eq.0) then
call durand(seed,num_tuftIB ,ranvec_tuftIB )
do L = 1, num_tuftIB
if ((ranvec_tuftIB (L).gt.0.d0).and.
& (ranvec_tuftIB (L).le.noisepe_tuftIB )) then
curr_tuftIB (60,L) = 0.4d0
ectr_tuftIB = ectr_tuftIB + 1
else
curr_tuftIB (60,L) = 0.d0
endif
end do
endif
! Call integration routine for tuftIB cells
CALL INTEGRATE_tuftIB (O, time, num_tuftIB,
& V_tuftIB, curr_tuftIB,
& gAMPA_tuftIB, gNMDA_tuftIB, gGABA_A_tuftIB,
& Mg,
& gapcon_tuftIB,totaxgj_tuftIB,gjtable_tuftIB, dt,
& totaxgj_tuft , gjtable_tuft , num_tuftRS ,
& vax_tuftRS ,
& chi_tuftIB,mnaf_tuftIB,mnap_tuftIB,
& hnaf_tuftIB,mkdr_tuftIB,mka_tuftIB,
& hka_tuftIB,mk2_tuftIB,hk2_tuftIB,
& mkm_tuftIB,mkc_tuftIB,mkahp_tuftIB,
& mcat_tuftIB,hcat_tuftIB,mcal_tuftIB,
& mar_tuftIB,field_1mm_tuftIB,field_2mm_tuftIB)
IF (mod(O,5).eq.0) then
! Set up axonal gj voltage array and broadcast it to node 7
! (tuftRS cells) and receive tuftRS array - for mixed gj.
do L = 1, num_tuftIB
vax_tuftIB (L) = V_tuftIB (61,L)
end do
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
ENDIF ! vax set-up, broadcasting and receiving
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_tuftIB
distal_axon_tuftIB (L) = V_tuftIB (60,L)
end do
call mpi_allgather (distal_axon_tuftIB,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ...
! END thisno = 6
ELSE IF (THISNO.EQ.7) THEN
c tuftRS
IF (mod(O,how_often).eq.0) then
c 1st set tuftRS synaptic conductances to 0:
do i = 1, numcomp_tuftRS
do j = 1, num_tuftRS
gAMPA_tuftRS(i,j) = 0.d0
gNMDA_tuftRS(i,j) = 0.d0
gGABA_A_tuftRS(i,j) = 0.d0
end do
end do
do L = 1, num_tuftRS
c Handle suppyrRS -> tuftRS
do i = 1, num_suppyrRS_to_tuftRS
j = map_suppyrRS_to_tuftRS(i,L) ! j = presynaptic cell
k = com_suppyrRS_to_tuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrRS(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrRS_to_tuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftRS(k,L) = gAMPA_tuftRS(k,L) +
& gAMPA_suppyrRS_to_tuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_suppyrRS_to_tuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrRS_to_tuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_suppyrRS_to_tuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrRS_to_tuftRS
if (gNMDA_tuftRS(k,L).gt.z)
& gNMDA_tuftRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle suppyrFRB -> tuftRS
do i = 1, num_suppyrFRB_to_tuftRS
j = map_suppyrFRB_to_tuftRS(i,L) ! j = presynaptic cell
k = com_suppyrFRB_to_tuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrFRB(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrFRB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrFRB_to_tuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftRS(k,L) = gAMPA_tuftRS(k,L) +
& gAMPA_suppyrFRB_to_tuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_suppyrFRB_to_tuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrFRB_to_tuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_suppyrFRB_to_tuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrFRB_to_tuftRS
if (gNMDA_tuftRS(k,L).gt.z)
& gNMDA_tuftRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle supaxax -> tuftRS
do i = 1, num_supaxax_to_tuftRS
j = map_supaxax_to_tuftRS(i,L) ! j = presynaptic cell
k = com_supaxax_to_tuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supaxax(j) ! enumerate presyn. spikes
presyntime = outtime_supaxax(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supaxax_to_tuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_tuftRS(k,L) = gGABA_A_tuftRS(k,L) +
& gGABA_supaxax_to_tuftRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle supLTS -> tuftRS
do i = 1, num_supLTS_to_tuftRS
j = map_supLTS_to_tuftRS(i,L) ! j = presynaptic cell
k = com_supLTS_to_tuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supLTS(j) ! enumerate presyn. spikes
presyntime = outtime_supLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supLTS_to_tuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_tuftRS(k,L) = gGABA_A_tuftRS(k,L) +
& gGABA_supLTS_to_tuftRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle spinstell -> tuftRS
do i = 1, num_spinstell_to_tuftRS
j = map_spinstell_to_tuftRS(i,L) ! j = presynaptic cell
k = com_spinstell_to_tuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_spinstell(j) ! enumerate presyn. spikes
presyntime = outtime_spinstell(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_spinstell_to_tuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftRS(k,L) = gAMPA_tuftRS(k,L) +
& gAMPA_spinstell_to_tuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_spinstell_to_tuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_spinstell_to_tuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_spinstell_to_tuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_spinstell_to_tuftRS
if (gNMDA_tuftRS(k,L).gt.z)
& gNMDA_tuftRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftIB -> tuftRS
do i = 1, num_tuftIB_to_tuftRS
j = map_tuftIB_to_tuftRS(i,L) ! j = presynaptic cell
k = com_tuftIB_to_tuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftIB(j) ! enumerate presyn. spikes
presyntime = outtime_tuftIB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftIB_to_tuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftRS(k,L) = gAMPA_tuftRS(k,L) +
& gAMPA_tuftIB_to_tuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_tuftIB_to_tuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftIB_to_tuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_tuftIB_to_tuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftIB_to_tuftRS
if (gNMDA_tuftRS(k,L).gt.z)
& gNMDA_tuftRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftRS -> tuftRS
do i = 1, num_tuftRS_to_tuftRS
j = map_tuftRS_to_tuftRS(i,L) ! j = presynaptic cell
k = com_tuftRS_to_tuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_tuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftRS_to_tuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftRS(k,L) = gAMPA_tuftRS(k,L) +
& gAMPA_tuftRS_to_tuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_tuftRS_to_tuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftRS_to_tuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_tuftRS_to_tuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftRS_to_tuftRS
if (gNMDA_tuftRS(k,L).gt.z)
& gNMDA_tuftRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle deepbask -> tuftRS
do i = 1, num_deepbask_to_tuftRS
j = map_deepbask_to_tuftRS(i,L) ! j = presynaptic cell
k = com_deepbask_to_tuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepbask(j) ! enumerate presyn. spikes
presyntime = outtime_deepbask(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepbask_to_tuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_tuftRS(k,L) = gGABA_A_tuftRS(k,L) +
& gGABA_deepbask_to_tuftRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepaxax -> tuftRS
do i = 1, num_deepaxax_to_tuftRS
j = map_deepaxax_to_tuftRS(i,L) ! j = presynaptic cell
k = com_deepaxax_to_tuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepaxax(j) ! enumerate presyn. spikes
presyntime = outtime_deepaxax(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepaxax_to_tuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_tuftRS(k,L) = gGABA_A_tuftRS(k,L) +
& gGABA_deepaxax_to_tuftRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepLTS -> tuftRS
do i = 1, num_deepLTS_to_tuftRS
j = map_deepLTS_to_tuftRS(i,L) ! j = presynaptic cell
k = com_deepLTS_to_tuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepLTS(j) ! enumerate presyn. spikes
presyntime = outtime_deepaxax(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepLTS_to_tuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_tuftRS(k,L) = gGABA_A_tuftRS(k,L) +
& gGABA_deepLTS_to_tuftRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle TCR -> tuftRS
do i = 1, num_TCR_to_tuftRS
j = map_TCR_to_tuftRS(i,L) ! j = presynaptic cell
k = com_TCR_to_tuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_TCR(j) ! enumerate presyn. spikes
presyntime = outtime_TCR(m,j)
delta = time - presyntime - thal_cort_delay
IF (DELTA.GE.0.d0) THEN
! AMPA part
dexparg = delta / tauAMPA_TCR_to_tuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftRS(k,L) = gAMPA_tuftRS(k,L) +
& gAMPA_TCR_to_tuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_TCR_to_tuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_TCR_to_tuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_TCR_to_tuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_TCR_to_tuftRS
if (gNMDA_tuftRS(k,L).gt.z)
& gNMDA_tuftRS(k,L) = z
! end NMDA part
ENDIF ! condition for checking that delta >= 0.
end do ! m
end do ! i
c Handle nontuftRS -> tuftRS
do i = 1, num_nontuftRS_to_tuftRS
j = map_nontuftRS_to_tuftRS(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_tuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_tuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_tuftRS(k,L) = gAMPA_tuftRS(k,L) +
& gAMPA_nontuftRS_to_tuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_nontuftRS_to_tuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_tuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_tuftRS(k,L) = gNMDA_tuftRS(k,L) +
& gNMDA_nontuftRS_to_tuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_tuftRS
if (gNMDA_tuftRS(k,L).gt.z)
& gNMDA_tuftRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
end do
c End enumeration of tuftRS
ENDIF ! if (mod(O,how_often).eq.0) ...
! Define currents to tuftRS cells, ectopic spikes,
! tonic synaptic conductances
if (mod(O,200).eq.0) then
call durand(seed,num_tuftRS ,ranvec_tuftRS )
do L = 1, num_tuftRS
if ((ranvec_tuftRS (L).gt.0.d0).and.
& (ranvec_tuftRS (L).le.noisepe_tuftRS )) then
curr_tuftRS (60,L) = 0.4d0
ectr_tuftRS = ectr_tuftRS + 1
else
curr_tuftRS (60,L) = 0.d0
endif
end do
endif
! Call integration routine for tuftRS cells
CALL INTEGRATE_tuftRS (O, time, num_tuftRS,
& V_tuftRS, curr_tuftRS,
& gAMPA_tuftRS, gNMDA_tuftRS, gGABA_A_tuftRS,
& Mg,
& gapcon_tuftRS,totaxgj_tuftRS,gjtable_tuftRS, dt,
& totaxgj_tuft , gjtable_tuft , num_tuftIB ,
& vax_tuftIB ,
& chi_tuftRS,mnaf_tuftRS,mnap_tuftRS,
& hnaf_tuftRS,mkdr_tuftRS,mka_tuftRS,
& hka_tuftRS,mk2_tuftRS,hk2_tuftRS,
& mkm_tuftRS,mkc_tuftRS,mkahp_tuftRS,
& mcat_tuftRS,hcat_tuftRS,mcal_tuftRS,
& mar_tuftRS,field_1mm_tuftRS,field_2mm_tuftRS)
IF (mod(O,5).eq.0) then
! Set up axonal gj voltage array and broadcast it to node 6
! (tuftIB cells) and receive tuftIB array - for mixed gj.
do L = 1, num_tuftRS
vax_tuftRS (L) = V_tuftRS (61,L)
end do
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
ENDIF ! vax set-up, broadcasting and receiving
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_tuftRS
distal_axon_tuftRS (L) = V_tuftRS (60,L)
end do
call mpi_allgather (distal_axon_tuftRS,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ...
! END thisno = 7
ELSE IF (THISNO.EQ.8) THEN
c nontuftRS
IF (mod(O,how_often).eq.0) then
c 1st set nontuftRS synaptic conductances to 0:
do i = 1, numcomp_nontuftRS
do j = 1, num_nontuftRS
gAMPA_nontuftRS(i,j) = 0.d0
gNMDA_nontuftRS(i,j) = 0.d0
gGABA_A_nontuftRS(i,j) = 0.d0
end do
end do
do L = 1, num_nontuftRS
c Handle suppyrRS -> nontuftRS
do i = 1, num_suppyrRS_to_nontuftRS
j = map_suppyrRS_to_nontuftRS(i,L) ! j = presynaptic cell
k = com_suppyrRS_to_nontuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrRS(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrRS_to_nontuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_nontuftRS(k,L) = gAMPA_nontuftRS(k,L) +
& gAMPA_suppyrRS_to_nontuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_suppyrRS_to_nontuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrRS_to_nontuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_suppyrRS_to_nontuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrRS_to_nontuftRS
if (gNMDA_nontuftRS(k,L).gt.z)
& gNMDA_nontuftRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle suppyrFRB -> nontuftRS
do i = 1, num_suppyrFRB_to_nontuftRS
j = map_suppyrFRB_to_nontuftRS(i,L) ! j = presynaptic cell
k = com_suppyrFRB_to_nontuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrFRB(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrFRB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrFRB_to_nontuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_nontuftRS(k,L) = gAMPA_nontuftRS(k,L) +
& gAMPA_suppyrFRB_to_nontuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_suppyrFRB_to_nontuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrFRB_to_nontuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_suppyrFRB_to_nontuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrFRB_to_nontuftRS
if (gNMDA_nontuftRS(k,L).gt.z)
& gNMDA_nontuftRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle supaxax -> nontuftRS
do i = 1, num_supaxax_to_nontuftRS
j = map_supaxax_to_nontuftRS(i,L) ! j = presynaptic cell
k = com_supaxax_to_nontuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supaxax(j) ! enumerate presyn. spikes
presyntime = outtime_supaxax(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supaxax_to_nontuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_nontuftRS(k,L) = gGABA_A_nontuftRS(k,L) +
& gGABA_supaxax_to_nontuftRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle supLTS -> nontuftRS
do i = 1, num_supLTS_to_nontuftRS
j = map_supLTS_to_nontuftRS(i,L) ! j = presynaptic cell
k = com_supLTS_to_nontuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supLTS(j) ! enumerate presyn. spikes
presyntime = outtime_supLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supLTS_to_nontuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_nontuftRS(k,L) = gGABA_A_nontuftRS(k,L) +
& gGABA_supLTS_to_nontuftRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle spinstell -> nontuftRS
do i = 1, num_spinstell_to_nontuftRS
j = map_spinstell_to_nontuftRS(i,L) ! j = presynaptic cell
k = com_spinstell_to_nontuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_spinstell(j) ! enumerate presyn. spikes
presyntime = outtime_spinstell(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_spinstell_to_nontuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_nontuftRS(k,L) = gAMPA_nontuftRS(k,L) +
& gAMPA_spinstell_to_nontuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_spinstell_to_nontuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_spinstell_to_nontuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_spinstell_to_nontuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_spinstell_to_nontuftRS
if (gNMDA_nontuftRS(k,L).gt.z)
& gNMDA_nontuftRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftIB -> nontuftRS
do i = 1, num_tuftIB_to_nontuftRS
j = map_tuftIB_to_nontuftRS(i,L) ! j = presynaptic cell
k = com_tuftIB_to_nontuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftIB(j) ! enumerate presyn. spikes
presyntime = outtime_tuftIB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftIB_to_nontuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_nontuftRS(k,L) = gAMPA_nontuftRS(k,L) +
& gAMPA_tuftIB_to_nontuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_tuftIB_to_nontuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftIB_to_nontuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_tuftIB_to_nontuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftIB_to_nontuftRS
if (gNMDA_nontuftRS(k,L).gt.z)
& gNMDA_nontuftRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftRS -> nontuftRS
do i = 1, num_tuftRS_to_nontuftRS
j = map_tuftRS_to_nontuftRS(i,L) ! j = presynaptic cell
k = com_tuftRS_to_nontuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_tuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftRS_to_nontuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_nontuftRS(k,L) = gAMPA_nontuftRS(k,L) +
& gAMPA_tuftRS_to_nontuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_tuftRS_to_nontuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftRS_to_nontuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_tuftRS_to_nontuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftRS_to_nontuftRS
if (gNMDA_nontuftRS(k,L).gt.z)
& gNMDA_nontuftRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle deepbask -> nontuftRS
do i = 1, num_deepbask_to_nontuftRS
j = map_deepbask_to_nontuftRS(i,L) ! j = presynaptic cell
k = com_deepbask_to_nontuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepbask(j) ! enumerate presyn. spikes
presyntime = outtime_deepbask(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepbask_to_nontuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_nontuftRS(k,L) = gGABA_A_nontuftRS(k,L) +
& gGABA_deepbask_to_nontuftRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepaxax -> nontuftRS
do i = 1, num_deepaxax_to_nontuftRS
j = map_deepaxax_to_nontuftRS(i,L) ! j = presynaptic cell
k = com_deepaxax_to_nontuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepaxax(j) ! enumerate presyn. spikes
presyntime = outtime_deepaxax(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepaxax_to_nontuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_nontuftRS(k,L) = gGABA_A_nontuftRS(k,L) +
& gGABA_deepaxax_to_nontuftRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepLTS -> nontuftRS
do i = 1, num_deepLTS_to_nontuftRS
j = map_deepLTS_to_nontuftRS(i,L) ! j = presynaptic cell
k = com_deepLTS_to_nontuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepLTS(j) ! enumerate presyn. spikes
presyntime = outtime_deepLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepLTS_to_nontuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_nontuftRS(k,L) = gGABA_A_nontuftRS(k,L) +
& gGABA_deepLTS_to_nontuftRS * z
! end GABA-A part
end do ! m
end do ! i
c Handle TCR -> nontuftRS
do i = 1, num_TCR_to_nontuftRS
j = map_TCR_to_nontuftRS(i,L) ! j = presynaptic cell
k = com_TCR_to_nontuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_TCR(j) ! enumerate presyn. spikes
presyntime = outtime_TCR(m,j)
delta = time - presyntime - thal_cort_delay
IF (DELTA.GE.0.d0) THEN
! AMPA part
dexparg = delta / tauAMPA_TCR_to_nontuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_nontuftRS(k,L) = gAMPA_nontuftRS(k,L) +
& gAMPA_TCR_to_nontuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_TCR_to_nontuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_TCR_to_nontuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_TCR_to_nontuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_TCR_to_nontuftRS
if (gNMDA_nontuftRS(k,L).gt.z)
& gNMDA_nontuftRS(k,L) = z
! end NMDA part
ENDIF ! condition for checking that delta >= 0.
end do ! m
end do ! i
c Handle nontuftRS -> nontuftRS
do i = 1, num_nontuftRS_to_nontuftRS
j = map_nontuftRS_to_nontuftRS(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_nontuftRS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_nontuftRS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_nontuftRS(k,L) = gAMPA_nontuftRS(k,L) +
& gAMPA_nontuftRS_to_nontuftRS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_nontuftRS_to_nontuftRS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_nontuftRS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_nontuftRS(k,L) = gNMDA_nontuftRS(k,L) +
& gNMDA_nontuftRS_to_nontuftRS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_nontuftRS
if (gNMDA_nontuftRS(k,L).gt.z)
& gNMDA_nontuftRS(k,L) = z
! end NMDA part
end do ! m
end do ! i
end do
c End enumeration of nontuftRS
ENDIF ! if (mod(O,how_often).eq.0) ...
! Define currents to nontuftRS cells, ectopic spikes,
! tonic synaptic conductances
if (mod(O,200).eq.0) then
call durand(seed,num_nontuftRS ,ranvec_nontuftRS )
do L = 1, num_nontuftRS
if ((ranvec_nontuftRS (L).gt.0.d0).and.
& (ranvec_nontuftRS (L).le.noisepe_nontuftRS )) then
curr_nontuftRS (48,L) = 0.4d0
ectr_nontuftRS = ectr_nontuftRS + 1
else
curr_nontuftRS (48,L) = 0.d0
endif
end do
endif
! Call integration routine for nontuftRS cells
CALL INTEGRATE_nontuftRS (O, time, num_nontuftRS,
& V_nontuftRS, curr_nontuftRS,
& gAMPA_nontuftRS, gNMDA_nontuftRS, gGABA_A_nontuftRS,
& Mg,
& gapcon_nontuftRS,totaxgj_nontuftRS,gjtable_nontuftRS, dt,
& chi_nontuftRS,mnaf_nontuftRS,mnap_nontuftRS,
& hnaf_nontuftRS,mkdr_nontuftRS,mka_nontuftRS,
& hka_nontuftRS,mk2_nontuftRS,hk2_nontuftRS,
& mkm_nontuftRS,mkc_nontuftRS,mkahp_nontuftRS,
& mcat_nontuftRS,hcat_nontuftRS,mcal_nontuftRS,
& mar_nontuftRS,field_1mm_nontuftRS,field_2mm_nontuftRS)
if (mod(O,5).eq.0) then
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
endif
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_nontuftRS
distal_axon_nontuftRS (L) = V_nontuftRS (48,L)
end do
call mpi_allgather (distal_axon_nontuftRS,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ...
! END thisno = 8
ELSE IF (THISNO.EQ.9) THEN
c deepbask
IF (mod(O,how_often).eq.0) then
c 1st set deepbask synaptic conductances to 0:
do i = 1, numcomp_deepbask
do j = 1, num_deepbask
gAMPA_deepbask(i,j) = 0.d0
gNMDA_deepbask(i,j) = 0.d0
gGABA_A_deepbask(i,j) = 0.d0
end do
end do
do L = 1, num_deepbask
c Handle suppyrRS -> deepbask
do i = 1, num_suppyrRS_to_deepbask
j = map_suppyrRS_to_deepbask(i,L) ! j = presynaptic cell
k = com_suppyrRS_to_deepbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrRS(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrRS_to_deepbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepbask(k,L) = gAMPA_deepbask(k,L) +
& gAMPA_suppyrRS_to_deepbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_suppyrRS_to_deepbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrRS_to_deepbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_suppyrRS_to_deepbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrRS_to_deepbask
if (gNMDA_deepbask(k,L).gt.z)
& gNMDA_deepbask(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle suppyrFRB -> deepbask
do i = 1, num_suppyrFRB_to_deepbask
j = map_suppyrFRB_to_deepbask(i,L) ! j = presynaptic cell
k = com_suppyrFRB_to_deepbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrFRB(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrFRB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrFRB_to_deepbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepbask(k,L) = gAMPA_deepbask(k,L) +
& gAMPA_suppyrFRB_to_deepbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_suppyrFRB_to_deepbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrFRB_to_deepbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_suppyrFRB_to_deepbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrFRB_to_deepbask
if (gNMDA_deepbask(k,L).gt.z)
& gNMDA_deepbask(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle supLTS -> deepbask
do i = 1, num_supLTS_to_deepbask
j = map_supLTS_to_deepbask(i,L) ! j = presynaptic cell
k = com_supLTS_to_deepbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supLTS(j) ! enumerate presyn. spikes
presyntime = outtime_supLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supLTS_to_deepbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_deepbask(k,L) = gGABA_A_deepbask(k,L) +
& gGABA_supLTS_to_deepbask * z
! end GABA-A part
end do ! m
end do ! i
c Handle spinstell -> deepbask
do i = 1, num_spinstell_to_deepbask
j = map_spinstell_to_deepbask(i,L) ! j = presynaptic cell
k = com_spinstell_to_deepbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_spinstell(j) ! enumerate presyn. spikes
presyntime = outtime_spinstell(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_spinstell_to_deepbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepbask(k,L) = gAMPA_deepbask(k,L) +
& gAMPA_spinstell_to_deepbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_spinstell_to_deepbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_spinstell_to_deepbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_spinstell_to_deepbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_spinstell_to_deepbask
if (gNMDA_deepbask(k,L).gt.z)
& gNMDA_deepbask(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftIB -> deepbask
do i = 1, num_tuftIB_to_deepbask
j = map_tuftIB_to_deepbask(i,L) ! j = presynaptic cell
k = com_tuftIB_to_deepbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftIB(j) ! enumerate presyn. spikes
presyntime = outtime_tuftIB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftIB_to_deepbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepbask(k,L) = gAMPA_deepbask(k,L) +
& gAMPA_tuftIB_to_deepbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_tuftIB_to_deepbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftIB_to_deepbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_tuftIB_to_deepbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftIB_to_deepbask
if (gNMDA_deepbask(k,L).gt.z)
& gNMDA_deepbask(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftRS -> deepbask
do i = 1, num_tuftRS_to_deepbask
j = map_tuftRS_to_deepbask(i,L) ! j = presynaptic cell
k = com_tuftRS_to_deepbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_tuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftRS_to_deepbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepbask(k,L) = gAMPA_deepbask(k,L) +
& gAMPA_tuftRS_to_deepbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_tuftRS_to_deepbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftRS_to_deepbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_tuftRS_to_deepbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftRS_to_deepbask
if (gNMDA_deepbask(k,L).gt.z)
& gNMDA_deepbask(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle deepbask -> deepbask
do i = 1, num_deepbask_to_deepbask
j = map_deepbask_to_deepbask(i,L) ! j = presynaptic cell
k = com_deepbask_to_deepbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepbask(j) ! enumerate presyn. spikes
presyntime = outtime_deepbask(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepbask_to_deepbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_deepbask(k,L) = gGABA_A_deepbask(k,L) +
& gGABA_deepbask_to_deepbask * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepLTS -> deepbask
do i = 1, num_deepLTS_to_deepbask
j = map_deepLTS_to_deepbask(i,L) ! j = presynaptic cell
k = com_deepLTS_to_deepbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepLTS(j) ! enumerate presyn. spikes
presyntime = outtime_deepLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepLTS_to_deepbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_deepbask(k,L) = gGABA_A_deepbask(k,L) +
& gGABA_deepLTS_to_deepbask * z
! end GABA-A part
end do ! m
end do ! i
c Handle TCR -> deepbask
do i = 1, num_TCR_to_deepbask
j = map_TCR_to_deepbask(i,L) ! j = presynaptic cell
k = com_TCR_to_deepbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_TCR(j) ! enumerate presyn. spikes
presyntime = outtime_TCR(m,j)
delta = time - presyntime - thal_cort_delay
IF (DELTA.GE.0.d0) THEN
! AMPA part
dexparg = delta / tauAMPA_TCR_to_deepbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepbask(k,L) = gAMPA_deepbask(k,L) +
& gAMPA_TCR_to_deepbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_TCR_to_deepbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_TCR_to_deepbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_TCR_to_deepbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_TCR_to_deepbask
if (gNMDA_deepbask(k,L).gt.z)
& gNMDA_deepbask(k,L) = z
! end NMDA part
ENDIF ! condition for checking that delta >= 0.
end do ! m
end do ! i
c Handle nontuftRS -> deepbask
do i = 1, num_nontuftRS_to_deepbask
j = map_nontuftRS_to_deepbask(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_deepbask(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_deepbask
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepbask(k,L) = gAMPA_deepbask(k,L) +
& gAMPA_nontuftRS_to_deepbask * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_nontuftRS_to_deepbask * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_deepbask
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepbask(k,L) = gNMDA_deepbask(k,L) +
& gNMDA_nontuftRS_to_deepbask * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_deepbask
if (gNMDA_deepbask(k,L).gt.z)
& gNMDA_deepbask(k,L) = z
! end NMDA part
end do ! m
end do ! i
end do
c End enumeration of deepbask
ENDIF ! if (mod(O,how_often).eq.0) ...
! Define currents to deepbask cells, ectopic spikes,
! tonic synaptic conductances
! Call integration routine for deepbask cells
CALL INTEGRATE_deepbask (O, time, num_deepbask ,
& V_deepbask , curr_deepbask ,
& gAMPA_deepbask, gNMDA_deepbask, gGABA_A_deepbask,
& Mg,
& gapcon_deepbask ,totSDgj_deepbask ,gjtable_deepbask, dt,
& chi_deepbask,mnaf_deepbask,mnap_deepbask,
& hnaf_deepbask,mkdr_deepbask,mka_deepbask,
& hka_deepbask,mk2_deepbask,hk2_deepbask,
& mkm_deepbask,mkc_deepbask,mkahp_deepbask,
& mcat_deepbask,hcat_deepbask,mcal_deepbask,
& mar_deepbask)
if (mod(O,5).eq.0) then
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
endif
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_deepbask
distal_axon_deepbask (L) = V_deepbask (59,L)
end do
call mpi_allgather (distal_axon_deepbask,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ...
! END thisno = 9
ELSE IF (THISNO.EQ.10) THEN
c deepaxax
IF (mod(O,how_often).eq.0) then
c 1st set deepaxax synaptic conductances to 0:
do i = 1, numcomp_deepaxax
do j = 1, num_deepaxax
gAMPA_deepaxax(i,j) = 0.d0
gNMDA_deepaxax(i,j) = 0.d0
gGABA_A_deepaxax(i,j) = 0.d0
end do
end do
do L = 1, num_deepaxax
c Handle suppyrRS -> deepaxax
do i = 1, num_suppyrRS_to_deepaxax
j = map_suppyrRS_to_deepaxax(i,L) ! j = presynaptic cell
k = com_suppyrRS_to_deepaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrRS(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrRS_to_deepaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepaxax(k,L) = gAMPA_deepaxax(k,L) +
& gAMPA_suppyrRS_to_deepaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_suppyrRS_to_deepaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrRS_to_deepaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_suppyrRS_to_deepaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrRS_to_deepaxax
if (gNMDA_deepaxax(k,L).gt.z)
& gNMDA_deepaxax(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle suppyrFRB -> deepaxax
do i = 1, num_suppyrFRB_to_deepaxax
j = map_suppyrFRB_to_deepaxax(i,L) ! j = presynaptic cell
k = com_suppyrFRB_to_deepaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrFRB(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrFRB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrFRB_to_deepaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepaxax(k,L) = gAMPA_deepaxax(k,L) +
& gAMPA_suppyrFRB_to_deepaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_suppyrFRB_to_deepaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrFRB_to_deepaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_suppyrFRB_to_deepaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrFRB_to_deepaxax
if (gNMDA_deepaxax(k,L).gt.z)
& gNMDA_deepaxax(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle supLTS -> deepaxax
do i = 1, num_supLTS_to_deepaxax
j = map_supLTS_to_deepaxax(i,L) ! j = presynaptic cell
k = com_supLTS_to_deepaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supLTS(j) ! enumerate presyn. spikes
presyntime = outtime_supLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supLTS_to_deepaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_deepaxax(k,L) = gGABA_A_deepaxax(k,L) +
& gGABA_supLTS_to_deepaxax * z
! end GABA-A part
end do ! m
end do ! i
c Handle spinstell -> deepaxax
do i = 1, num_spinstell_to_deepaxax
j = map_spinstell_to_deepaxax(i,L) ! j = presynaptic cell
k = com_spinstell_to_deepaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_spinstell(j) ! enumerate presyn. spikes
presyntime = outtime_spinstell(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_spinstell_to_deepaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepaxax(k,L) = gAMPA_deepaxax(k,L) +
& gAMPA_spinstell_to_deepaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_spinstell_to_deepaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_spinstell_to_deepaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_spinstell_to_deepaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_spinstell_to_deepaxax
if (gNMDA_deepaxax(k,L).gt.z)
& gNMDA_deepaxax(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftIB -> deepaxax
do i = 1, num_tuftIB_to_deepaxax
j = map_tuftIB_to_deepaxax(i,L) ! j = presynaptic cell
k = com_tuftIB_to_deepaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftIB(j) ! enumerate presyn. spikes
presyntime = outtime_tuftIB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftIB_to_deepaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepaxax(k,L) = gAMPA_deepaxax(k,L) +
& gAMPA_tuftIB_to_deepaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_tuftIB_to_deepaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftIB_to_deepaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_tuftIB_to_deepaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftIB_to_deepaxax
if (gNMDA_deepaxax(k,L).gt.z)
& gNMDA_deepaxax(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftRS -> deepaxax
do i = 1, num_tuftRS_to_deepaxax
j = map_tuftRS_to_deepaxax(i,L) ! j = presynaptic cell
k = com_tuftRS_to_deepaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_tuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftRS_to_deepaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepaxax(k,L) = gAMPA_deepaxax(k,L) +
& gAMPA_tuftRS_to_deepaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_tuftRS_to_deepaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftRS_to_deepaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_tuftRS_to_deepaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftRS_to_deepaxax
if (gNMDA_deepaxax(k,L).gt.z)
& gNMDA_deepaxax(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle deepbask -> deepaxax
do i = 1, num_deepbask_to_deepaxax
j = map_deepbask_to_deepaxax(i,L) ! j = presynaptic cell
k = com_deepbask_to_deepaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepbask(j) ! enumerate presyn. spikes
presyntime = outtime_deepbask(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepbask_to_deepaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_deepaxax(k,L) = gGABA_A_deepaxax(k,L) +
& gGABA_deepbask_to_deepaxax * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepLTS -> deepaxax
do i = 1, num_deepLTS_to_deepaxax
j = map_deepLTS_to_deepaxax(i,L) ! j = presynaptic cell
k = com_deepLTS_to_deepaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepLTS(j) ! enumerate presyn. spikes
presyntime = outtime_deepLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepLTS_to_deepaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_deepaxax(k,L) = gGABA_A_deepaxax(k,L) +
& gGABA_deepLTS_to_deepaxax * z
! end GABA-A part
end do ! m
end do ! i
c Handle TCR -> deepaxax
do i = 1, num_TCR_to_deepaxax
j = map_TCR_to_deepaxax(i,L) ! j = presynaptic cell
k = com_TCR_to_deepaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_TCR(j) ! enumerate presyn. spikes
presyntime = outtime_TCR(m,j)
delta = time - presyntime - thal_cort_delay
IF (DELTA.GE.0.d0) THEN
! AMPA part
dexparg = delta / tauAMPA_TCR_to_deepaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepaxax(k,L) = gAMPA_deepaxax(k,L) +
& gAMPA_TCR_to_deepaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_TCR_to_deepaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_TCR_to_deepaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_TCR_to_deepaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_TCR_to_deepaxax
if (gNMDA_deepaxax(k,L).gt.z)
& gNMDA_deepaxax(k,L) = z
! end NMDA part
ENDIF ! condition for checking that delta >= 0.
end do ! m
end do ! i
c Handle nontuftRS -> deepaxax
do i = 1, num_nontuftRS_to_deepaxax
j = map_nontuftRS_to_deepaxax(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_deepaxax(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_deepaxax
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepaxax(k,L) = gAMPA_deepaxax(k,L) +
& gAMPA_nontuftRS_to_deepaxax * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_nontuftRS_to_deepaxax * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_deepaxax
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepaxax(k,L) = gNMDA_deepaxax(k,L) +
& gNMDA_nontuftRS_to_deepaxax * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_deepaxax
if (gNMDA_deepaxax(k,L).gt.z)
& gNMDA_deepaxax(k,L) = z
! end NMDA part
end do ! m
end do ! i
end do
c End enumeration of deepaxax
ENDIF ! if (mod(O,how_often).eq.0) ...
! Define currents to deepaxax cells, ectopic spikes,
! tonic synaptic conductances
! Call integration routine for deepaxax cells
CALL INTEGRATE_deepaxax (O, time, num_deepaxax ,
& V_deepaxax , curr_deepaxax ,
& gAMPA_deepaxax, gNMDA_deepaxax, gGABA_A_deepaxax,
& Mg,
& gapcon_deepaxax ,totSDgj_deepaxax ,gjtable_deepaxax, dt,
& chi_deepaxax,mnaf_deepaxax,mnap_deepaxax,
& hnaf_deepaxax,mkdr_deepaxax,mka_deepaxax,
& hka_deepaxax,mk2_deepaxax,hk2_deepaxax,
& mkm_deepaxax,mkc_deepaxax,mkahp_deepaxax,
& mcat_deepaxax,hcat_deepaxax,mcal_deepaxax,
& mar_deepaxax)
if (mod(O,5).eq.0) then
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
endif
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_deepaxax
distal_axon_deepaxax (L) = V_deepaxax (59,L)
end do
call mpi_allgather (distal_axon_deepaxax,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ...
! END thisno = 10
ELSE IF (THISNO.EQ.11) THEN
c deepLTS
IF (mod(O,how_often).eq.0) then
c 1st set deepLTS synaptic conductances to 0:
do i = 1, numcomp_deepLTS
do j = 1, num_deepLTS
gAMPA_deepLTS(i,j) = 0.d0
gNMDA_deepLTS(i,j) = 0.d0
gGABA_A_deepLTS(i,j) = 0.d0
end do
end do
do L = 1, num_deepLTS
c Handle suppyrRS -> deepLTS
do i = 1, num_suppyrRS_to_deepLTS
j = map_suppyrRS_to_deepLTS(i,L) ! j = presynaptic cell
k = com_suppyrRS_to_deepLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrRS(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrRS_to_deepLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepLTS(k,L) = gAMPA_deepLTS(k,L) +
& gAMPA_suppyrRS_to_deepLTS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepLTS(k,L) = gNMDA_deepLTS(k,L) +
& gNMDA_suppyrRS_to_deepLTS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrRS_to_deepLTS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepLTS(k,L) = gNMDA_deepLTS(k,L) +
& gNMDA_suppyrRS_to_deepLTS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrRS_to_deepLTS
if (gNMDA_deepLTS(k,L).gt.z)
& gNMDA_deepLTS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle suppyrFRB -> deepLTS
do i = 1, num_suppyrFRB_to_deepLTS
j = map_suppyrFRB_to_deepLTS(i,L) ! j = presynaptic cell
k = com_suppyrFRB_to_deepLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_suppyrFRB(j) ! enumerate presyn. spikes
presyntime = outtime_suppyrFRB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_suppyrFRB_to_deepLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepLTS(k,L) = gAMPA_deepLTS(k,L) +
& gAMPA_suppyrFRB_to_deepLTS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepLTS(k,L) = gNMDA_deepLTS(k,L) +
& gNMDA_suppyrFRB_to_deepLTS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_suppyrFRB_to_deepLTS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepLTS(k,L) = gNMDA_deepLTS(k,L) +
& gNMDA_suppyrFRB_to_deepLTS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_suppyrFRB_to_deepLTS
if (gNMDA_deepLTS(k,L).gt.z)
& gNMDA_deepLTS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle supLTS -> deepLTS
do i = 1, num_supLTS_to_deepLTS
j = map_supLTS_to_deepLTS(i,L) ! j = presynaptic cell
k = com_supLTS_to_deepLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_supLTS(j) ! enumerate presyn. spikes
presyntime = outtime_supLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_supLTS_to_deepLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_deepLTS(k,L) = gGABA_A_deepLTS(k,L) +
& gGABA_supLTS_to_deepLTS * z
! end GABA-A part
end do ! m
end do ! i
c Handle spinstell -> deepLTS
do i = 1, num_spinstell_to_deepLTS
j = map_spinstell_to_deepLTS(i,L) ! j = presynaptic cell
k = com_spinstell_to_deepLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_spinstell(j) ! enumerate presyn. spikes
presyntime = outtime_spinstell(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_spinstell_to_deepLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepLTS(k,L) = gAMPA_deepLTS(k,L) +
& gAMPA_spinstell_to_deepLTS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepLTS(k,L) = gNMDA_deepLTS(k,L) +
& gNMDA_spinstell_to_deepLTS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_spinstell_to_deepLTS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepLTS(k,L) = gNMDA_deepLTS(k,L) +
& gNMDA_spinstell_to_deepLTS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_spinstell_to_deepLTS
if (gNMDA_deepLTS(k,L).gt.z)
& gNMDA_deepLTS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftIB -> deepLTS
do i = 1, num_tuftIB_to_deepLTS
j = map_tuftIB_to_deepLTS(i,L) ! j = presynaptic cell
k = com_tuftIB_to_deepLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftIB(j) ! enumerate presyn. spikes
presyntime = outtime_tuftIB(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftIB_to_deepLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepLTS(k,L) = gAMPA_deepLTS(k,L) +
& gAMPA_tuftIB_to_deepLTS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepLTS(k,L) = gNMDA_deepLTS(k,L) +
& gNMDA_tuftIB_to_deepLTS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftIB_to_deepLTS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepLTS(k,L) = gNMDA_deepLTS(k,L) +
& gNMDA_tuftIB_to_deepLTS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftIB_to_deepLTS
if (gNMDA_deepLTS(k,L).gt.z)
& gNMDA_deepLTS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle tuftRS -> deepLTS
do i = 1, num_tuftRS_to_deepLTS
j = map_tuftRS_to_deepLTS(i,L) ! j = presynaptic cell
k = com_tuftRS_to_deepLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_tuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_tuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_tuftRS_to_deepLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepLTS(k,L) = gAMPA_deepLTS(k,L) +
& gAMPA_tuftRS_to_deepLTS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepLTS(k,L) = gNMDA_deepLTS(k,L) +
& gNMDA_tuftRS_to_deepLTS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_tuftRS_to_deepLTS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepLTS(k,L) = gNMDA_deepLTS(k,L) +
& gNMDA_tuftRS_to_deepLTS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_tuftRS_to_deepLTS
if (gNMDA_deepLTS(k,L).gt.z)
& gNMDA_deepLTS(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle deepbask -> deepLTS
do i = 1, num_deepbask_to_deepLTS
j = map_deepbask_to_deepLTS(i,L) ! j = presynaptic cell
k = com_deepbask_to_deepLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepbask(j) ! enumerate presyn. spikes
presyntime = outtime_deepbask(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepbask_to_deepLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_deepLTS(k,L) = gGABA_A_deepLTS(k,L) +
& gGABA_deepbask_to_deepLTS * z
! end GABA-A part
end do ! m
end do ! i
c Handle deepLTS -> deepLTS
do i = 1, num_deepLTS_to_deepLTS
j = map_deepLTS_to_deepLTS(i,L) ! j = presynaptic cell
k = com_deepLTS_to_deepLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_deepLTS(j) ! enumerate presyn. spikes
presyntime = outtime_deepLTS(m,j)
delta = time - presyntime
! GABA-A part
dexparg = delta / tauGABA_deepLTS_to_deepLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gGABA_A_deepLTS(k,L) = gGABA_A_deepLTS(k,L) +
& gGABA_deepLTS_to_deepLTS * z
! end GABA-A part
end do ! m
end do ! i
c Handle nontuftRS -> deepLTS
do i = 1, num_nontuftRS_to_deepLTS
j = map_nontuftRS_to_deepLTS(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_deepLTS(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_deepLTS
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_deepLTS(k,L) = gAMPA_deepLTS(k,L) +
& gAMPA_nontuftRS_to_deepLTS * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_deepLTS(k,L) = gNMDA_deepLTS(k,L) +
& gNMDA_nontuftRS_to_deepLTS * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_deepLTS
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_deepLTS(k,L) = gNMDA_deepLTS(k,L) +
& gNMDA_nontuftRS_to_deepLTS * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_deepLTS
if (gNMDA_deepLTS(k,L).gt.z)
& gNMDA_deepLTS(k,L) = z
! end NMDA part
end do ! m
end do ! i
end do
c End enumeration of deepLTS
ENDIF ! if (mod(O,how_often).eq.0) ...
! Define currents to deepLTS cells, ectopic spikes,
! tonic synaptic conductances
! Call integration routine for deepLTS cells
CALL INTEGRATE_deepLTS (O, time, num_deepLTS ,
& V_deepLTS , curr_deepLTS ,
& gAMPA_deepLTS , gNMDA_deepLTS , gGABA_A_deepLTS ,
& Mg,
& gapcon_deepLTS ,totSDgj_deepLTS ,gjtable_deepLTS , dt,
& chi_deepLTS,mnaf_deepLTS,mnap_deepLTS,
& hnaf_deepLTS,mkdr_deepLTS,mka_deepLTS,
& hka_deepLTS,mk2_deepLTS,hk2_deepLTS,
& mkm_deepLTS,mkc_deepLTS,mkahp_deepLTS,
& mcat_deepLTS,hcat_deepLTS,mcal_deepLTS,
& mar_deepLTS)
if (mod(O,5).eq.0) then
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
endif
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_deepLTS
distal_axon_deepLTS (L) = V_deepLTS (59,L)
end do
call mpi_allgather (distal_axon_deepLTS,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ...
! END thisno = 11
ELSE IF (THISNO.EQ.12) THEN
c TCR
IF (mod(O,how_often).eq.0) then
c 1st set TCR synaptic conductances to 0:
do i = 1, numcomp_TCR
do j = 1, num_TCR
gAMPA_TCR(i,j) = 0.d0
gNMDA_TCR(i,j) = 0.d0
gGABA_A_TCR(i,j) = 0.d0
end do
end do
do L = 1, num_TCR
c Handle nRT -> TCR
do i = 1, num_nRT_to_TCR
j = map_nRT_to_TCR(i,L) ! j = presynaptic cell
k = com_nRT_to_TCR(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nRT(j) ! enumerate presyn. spikes
presyntime = outtime_nRT(m,j)
delta = time - presyntime
! GABA-A part
dexparg1 = delta / tauGABA1_nRT_to_TCR
c note that dexparg1 = MINUS the actual arg. to dexp
if (dexparg1.le.5.d0) then
z1 = dexptablesmall (int(dexparg1*1000.d0))
else if (dexparg1.le.100.d0) then
z1 = dexptablebig (int(dexparg1*10.d0))
else
z1 = 0.d0
endif
dexparg2 = delta / tauGABA2_nRT_to_TCR
c note that dexparg2 = MINUS the actual arg. to dexp
if (dexparg2.le.5.d0) then
z2 = dexptablesmall (int(dexparg2*1000.d0))
else if (dexparg2.le.100.d0) then
z2 = dexptablebig (int(dexparg2*10.d0))
else
z2 = 0.d0
endif
gGABA_A_TCR(k,L) = gGABA_A_TCR(k,L) +
& gGABA_nRT_to_TCR(j) * (0.625d0 * z1 + 0.375d0 * z2)
! end GABA-A part
end do ! m
end do ! i
c Handle nontuftRS -> TCR
do i = 1, num_nontuftRS_to_TCR
j = map_nontuftRS_to_TCR(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_TCR(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime - cort_thal_delay
IF (DELTA.GE.0.d0) THEN
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_TCR
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_TCR(k,L) = gAMPA_TCR(k,L) +
& gAMPA_nontuftRS_to_TCR * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_TCR(k,L) = gNMDA_TCR(k,L) +
& gNMDA_nontuftRS_to_TCR * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_TCR
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_TCR(k,L) = gNMDA_TCR(k,L) +
& gNMDA_nontuftRS_to_TCR * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_TCR
if (gNMDA_TCR(k,L).gt.z)
& gNMDA_TCR(k,L) = z
! end NMDA part
ENDIF ! condition for checking that delta >= 0.
end do ! m
end do ! i
end do
c End enumeration of TCR
ENDIF ! if (mod(O,how_often).eq.0) ...
! Define currents to TCR cells, ectopic spikes,
! tonic synaptic conductances
if (mod(O,200).eq.0) then
call durand(seed,num_TCR ,ranvec_TCR )
do L = 1, num_TCR
if ((ranvec_TCR (L).gt.0.d0).and.
& (ranvec_TCR (L).le.noisepe_TCR )) then
curr_TCR (135,L) = 0.4d0
ectr_TCR = ectr_TCR + 1
else
curr_TCR (135,L) = 0.d0
endif
end do
endif
! Call integration routine for TCR cells
CALL INTEGRATE_tcr (O, time, num_tcr ,
& V_tcr , curr_tcr ,
& gAMPA_tcr , gNMDA_tcr , gGABA_A_tcr ,
& Mg,
& gapcon_tcr ,totaxgj_tcr ,gjtable_tcr , dt,
& chi_tcr,mnaf_tcr,mnap_tcr,
& hnaf_tcr,mkdr_tcr,mka_tcr,
& hka_tcr,mk2_tcr,hk2_tcr,
& mkm_tcr,mkc_tcr,mkahp_tcr,
& mcat_tcr,hcat_tcr,mcal_tcr,
& mar_tcr)
if (mod(O,5).eq.0) then
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
endif
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_TCR
distal_axon_TCR (L) = V_TCR (135,L)
end do
call mpi_allgather (distal_axon_TCR,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ...
! END thisno = 12
ELSE IF (THISNO.EQ.13) THEN
c nRT
IF (mod(O,how_often).eq.0) then
c 1st set nRT synaptic conductances to 0:
do i = 1, numcomp_nRT
do j = 1, num_nRT
gAMPA_nRT(i,j) = 0.d0
gNMDA_nRT(i,j) = 0.d0
gGABA_A_nRT(i,j) = 0.d0
end do
end do
do L = 1, num_nRT
c Handle TCR -> nRT
do i = 1, num_TCR_to_nRT
j = map_TCR_to_nRT(i,L) ! j = presynaptic cell
k = com_TCR_to_nRT(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_TCR(j) ! enumerate presyn. spikes
presyntime = outtime_TCR(m,j)
delta = time - presyntime
! AMPA part
dexparg = delta / tauAMPA_TCR_to_nRT
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_nRT(k,L) = gAMPA_nRT(k,L) +
& gAMPA_TCR_to_nRT * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_nRT(k,L) = gNMDA_nRT(k,L) +
& gNMDA_TCR_to_nRT * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_TCR_to_nRT
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_nRT(k,L) = gNMDA_nRT(k,L) +
& gNMDA_TCR_to_nRT * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_TCR_to_nRT
if (gNMDA_nRT(k,L).gt.z)
& gNMDA_nRT(k,L) = z
! end NMDA part
end do ! m
end do ! i
c Handle nRT -> nRT
do i = 1, num_nRT_to_nRT
j = map_nRT_to_nRT(i,L) ! j = presynaptic cell
k = com_nRT_to_nRT(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nRT(j) ! enumerate presyn. spikes
presyntime = outtime_nRT(m,j)
delta = time - presyntime
! GABA-A part
dexparg1 = delta / tauGABA1_nRT_to_nRT
c note that dexparg1 = MINUS the actual arg. to dexp
if (dexparg1.le.5.d0) then
z1 = dexptablesmall (int(dexparg1*1000.d0))
else if (dexparg1.le.100.d0) then
z1 = dexptablebig (int(dexparg1*10.d0))
else
z1 = 0.d0
endif
dexparg2 = delta / tauGABA2_nRT_to_nRT
c note that dexparg2 = MINUS the actual arg. to dexp
if (dexparg2.le.5.d0) then
z2 = dexptablesmall (int(dexparg2*1000.d0))
else if (dexparg2.le.100.d0) then
z2 = dexptablebig (int(dexparg2*10.d0))
else
z2 = 0.d0
endif
gGABA_A_nRT(k,L) = gGABA_A_nRT(k,L) +
& gGABA_nRT_to_nRT * (0.56d0 * z1 + 0.44d0 * z2)
! end GABA-A part
end do ! m
end do ! i
c Handle nontuftRS -> nRT
do i = 1, num_nontuftRS_to_nRT
j = map_nontuftRS_to_nRT(i,L) ! j = presynaptic cell
k = com_nontuftRS_to_nRT(i,L) ! k = comp. on postsyn. cell
do m = 1, outctr_nontuftRS(j) ! enumerate presyn. spikes
presyntime = outtime_nontuftRS(m,j)
delta = time - presyntime - cort_thal_delay
IF (DELTA.GE.0.d0) THEN
! AMPA part
dexparg = delta / tauAMPA_nontuftRS_to_nRT
c note that dexparg = MINUS the actual arg. to dexp
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gAMPA_nRT(k,L) = gAMPA_nRT(k,L) +
& gAMPA_nontuftRS_to_nRT * delta * z
! end AMPA part
! NMDA part
if (delta.le.5.d0) then
gNMDA_nRT(k,L) = gNMDA_nRT(k,L) +
& gNMDA_nontuftRS_to_nRT * delta * 0.2d0
else
dexparg = (delta - 5.d0)/tauNMDA_nontuftRS_to_nRT
if (dexparg.le.5.d0) then
z = dexptablesmall (int(dexparg*1000.d0))
else if (dexparg.le.100.d0) then
z = dexptablebig (int(dexparg*10.d0))
else
z = 0.d0
endif
gNMDA_nRT(k,L) = gNMDA_nRT(k,L) +
& gNMDA_nontuftRS_to_nRT * z
endif
c Test for NMDA saturation
z = NMDA_saturation_fact * gNMDA_nontuftRS_to_nRT
if (gNMDA_nRT(k,L).gt.z)
& gNMDA_nRT(k,L) = z
! end NMDA part
ENDIF ! condition for checking that delta >= 0.
end do ! m
end do ! i
end do
c End enumeration of nRT
ENDIF ! if (mod(O,how_often).eq.0) ...
! Define currents to nRT cells, ectopic spikes,
! tonic synaptic conductances
! Call integration routine for nRT cells
CALL INTEGRATE_nRT (O, time, num_nRT ,
& V_nRT , curr_nRT ,
& gAMPA_nRT , gNMDA_nRT , gGABA_A_nRT ,
& Mg,
& gapcon_nRT ,totSDgj_nRT ,gjtable_nRT , dt,
& chi_nRT,mnaf_nRT,mnap_nRT,
& hnaf_nRT,mkdr_nRT,mka_nRT,
& hka_nRT,mk2_nRT,hk2_nRT,
& mkm_nRT,mkc_nRT,mkahp_nRT,
& mcat_nRT,hcat_nRT,mcal_nRT,
& mar_nRT)
if (mod(O,5).eq.0) then
call mpi_bcast (vax_suppyrRS ,num_suppyrRS,
& mpi_double_precision, 0, mpi_comm_world, info)
call mpi_bcast (vax_suppyrFRB ,num_suppyrFRB,
& mpi_double_precision, 1, mpi_comm_world, info)
call mpi_bcast (vax_tuftIB ,num_tuftIB ,
& mpi_double_precision, 6, mpi_comm_world, info)
call mpi_bcast (vax_tuftRS ,num_tuftRS ,
& mpi_double_precision, 7, mpi_comm_world, info)
endif
IF (mod(O,how_often).eq.0) then
! Set up distal axon voltage array and broadcast it.
do L = 1, num_nRT
distal_axon_nRT (L) = V_nRT (59,L)
end do
call mpi_allgather (distal_axon_nRT,
& 1000, mpi_double_precision,
& distal_axon_global,1000,mpi_double_precision,
& MPI_COMM_WORLD, info)
do i = 1, num_suppyrRS
distal_axon_suppyrRS(i ) = distal_axon_global(i)
end do
do i = 1001, 1000 + num_suppyrFRB
distal_axon_suppyrFRB(i-1000) = distal_axon_global(i)
end do
do i = 2001, 2000 + num_supbask
distal_axon_supbask(i-2000) = distal_axon_global(i)
end do
do i = 3001, 3000 + num_supaxax
distal_axon_supaxax(i-3000) = distal_axon_global(i)
end do
do i = 4001, 4000 + num_supLTS
distal_axon_supLTS(i-4000) = distal_axon_global(i)
end do
do i = 5001, 5000 + num_spinstell
distal_axon_spinstell(i-5000) = distal_axon_global(i)
end do
do i = 6001, 6000 + num_tuftIB
distal_axon_tuftIB(i-6000) = distal_axon_global(i)
end do
do i = 7001, 7000 + num_tuftRS
distal_axon_tuftRS(i-7000) = distal_axon_global(i)
end do
do i = 8001, 8000 + num_nontuftRS
distal_axon_nontuftRS(i-8000) = distal_axon_global(i)
end do
do i = 9001, 9000 + num_deepbask
distal_axon_deepbask(i-9000) = distal_axon_global(i)
end do
do i = 10001, 10000 + num_deepaxax
distal_axon_deepaxax(i-10000) = distal_axon_global(i)
end do
do i = 11001, 11000 + num_deepLTS
distal_axon_deepLTS(i-11000) = distal_axon_global(i)
end do
do i = 12001, 12000 + num_TCR
distal_axon_TCR(i-12000) = distal_axon_global(i)
end do
do i = 13001, 13000 + num_nRT
distal_axon_nRT(i-13000) = distal_axon_global(i)
end do
ENDIF ! if (mod(O,how_often).eq.0) ...
! END thisno = 13
ENDIF ! if (mod(O,how_often).eq.0) then ...
! Update outctr's and outtime tables.
! This code is common to all the nodes.
! This section adapted from supergj.f
IF (mod(O,how_often).eq.0) then
do L = 1, num_suppyrRS
if (distal_axon_suppyrRS(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_suppyrRS(L).eq.0) then
outctr_suppyrRS(L) = 1
outtime_suppyrRS(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L + suppyrRS_base
else
if ((time-outtime_suppyrRS(outctr_suppyrRS(L),L))
& .gt. axon_refrac_time) then
outctr_suppyrRS(L) = outctr_suppyrRS(L) + 1
outtime_suppyrRS (outctr_suppyrRS(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L + suppyrRS_base
endif
endif
endif
end do ! do L = 1, num_suppyrRS
do L = 1, num_suppyrFRB
if (distal_axon_suppyrFRB(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_suppyrFRB(L).eq.0) then
outctr_suppyrFRB(L) = 1
outtime_suppyrFRB(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+suppyrFRB_base !999 ! cell number adjusted to gid
else
if ((time-outtime_suppyrFRB(outctr_suppyrFRB(L),L))
& .gt. axon_refrac_time) then
outctr_suppyrFRB(L) = outctr_suppyrFRB(L) + 1
outtime_suppyrFRB (outctr_suppyrFRB(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+suppyrFRB_base !999 ! cell number adjusted to gid
endif
endif
endif
end do ! do L = 1, num_suppyrFRB
do L = 1, num_supbask
if (distal_axon_supbask(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_supbask(L).eq.0) then
outctr_supbask(L) = 1
outtime_supbask(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+supbask_base !1049 ! cell number adjusted to gid
else
if ((time-outtime_supbask(outctr_supbask(L),L))
& .gt. axon_refrac_time) then
outctr_supbask(L) = outctr_supbask(L) + 1
outtime_supbask (outctr_supbask(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+supbask_base !1049 ! cell number adjusted to gid
endif
endif
endif
end do ! do L = 1, num_supbask
do L = 1, num_supaxax
if (distal_axon_supaxax(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_supaxax(L).eq.0) then
outctr_supaxax(L) = 1
outtime_supaxax(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+supaxax_base !1139 ! cell number adjusted to gid
else
if ((time-outtime_supaxax(outctr_supaxax(L),L))
& .gt. axon_refrac_time) then
outctr_supaxax(L) = outctr_supaxax(L) + 1
outtime_supaxax (outctr_supaxax(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+supaxax_base !1139 ! cell number adjusted to gid
endif
endif
endif
end do ! do L = 1, num_supaxax
do L = 1, num_supLTS
if (distal_axon_supLTS(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_supLTS(L).eq.0) then
outctr_supLTS(L) = 1
outtime_supLTS(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+supLTS_base !1229 ! cell number adjusted to gid
else
if ((time-outtime_supLTS(outctr_supLTS(L),L))
& .gt. axon_refrac_time) then
outctr_supLTS(L) = outctr_supLTS(L) + 1
outtime_supLTS (outctr_supLTS(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+supLTS_base !1229 ! cell number adjusted to gid
endif
endif
endif
end do ! do L = 1, num_supLTS
do L = 1, num_spinstell
if (distal_axon_spinstell(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_spinstell(L).eq.0) then
outctr_spinstell(L) = 1
outtime_spinstell(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+spinstell_base !1319 ! cell number adjusted to gid
else
if ((time-outtime_spinstell(outctr_spinstell(L),L))
& .gt. axon_refrac_time) then
outctr_spinstell(L) = outctr_spinstell(L) + 1
outtime_spinstell (outctr_spinstell(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+spinstell_base !1319 ! cell number adjusted to gid
endif
endif
endif
end do ! do L = 1, num_spinstell
do L = 1, num_tuftIB
if (distal_axon_tuftIB(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_tuftIB(L).eq.0) then
outctr_tuftIB(L) = 1
outtime_tuftIB(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+tuftIB_base !1559 ! cell number adjusted to gid
else
if ((time-outtime_tuftIB(outctr_tuftIB(L),L))
& .gt. axon_refrac_time) then
outctr_tuftIB(L) = outctr_tuftIB(L) + 1
outtime_tuftIB (outctr_tuftIB(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+tuftIB_base !1559 ! cell number adjusted to gid
endif
endif
endif
end do ! do L = 1, num_tuftIB
do L = 1, num_tuftRS
if (distal_axon_tuftRS(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_tuftRS(L).eq.0) then
outctr_tuftRS(L) = 1
outtime_tuftRS(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+tuftRS_base !2359 ! cell number adjusted to gid
else
if ((time-outtime_tuftRS(outctr_tuftRS(L),L))
& .gt. axon_refrac_time) then
outctr_tuftRS(L) = outctr_tuftRS(L) + 1
outtime_tuftRS (outctr_tuftRS(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+tuftRS_base !2359 ! cell number adjusted to gid
endif
endif
endif
end do ! do L = 1, num_tuftRS
do L = 1, num_nontuftRS
if (distal_axon_nontuftRS(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_nontuftRS(L).eq.0) then
outctr_nontuftRS(L) = 1
outtime_nontuftRS(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+nontuftRS_base !2559 ! cell number adjusted to gid
else
if ((time-outtime_nontuftRS(outctr_nontuftRS(L),L))
& .gt. axon_refrac_time) then
outctr_nontuftRS(L) = outctr_nontuftRS(L) + 1
outtime_nontuftRS (outctr_nontuftRS(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+nontuftRS_base !2559 ! cell number adjusted to gid
endif
endif
endif
end do ! do L = 1, num_nontuftRS
do L = 1, num_deepbask
if (distal_axon_deepbask(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_deepbask(L).eq.0) then
outctr_deepbask(L) = 1
outtime_deepbask(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+deepbask_base !3059 ! cell number adjusted to gid
else
if ((time-outtime_deepbask(outctr_deepbask(L),L))
& .gt. axon_refrac_time) then
outctr_deepbask(L) = outctr_deepbask(L) + 1
outtime_deepbask (outctr_deepbask(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+deepbask_base !3059 ! cell number adjusted to gid
endif
endif
endif
end do ! do L = 1, num_deepbask
do L = 1, num_deepaxax
if (distal_axon_deepaxax(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_deepaxax(L).eq.0) then
outctr_deepaxax(L) = 1
outtime_deepaxax(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+deepaxax_base !3159 ! cell number adjusted to gid
else
if ((time-outtime_deepaxax(outctr_deepaxax(L),L))
& .gt. axon_refrac_time) then
outctr_deepaxax(L) = outctr_deepaxax(L) + 1
outtime_deepaxax (outctr_deepaxax(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+deepaxax_base !3159 ! cell number adjusted to gid
endif
endif
endif
end do ! do L = 1, num_deepaxax
do L = 1, num_deepLTS
if (distal_axon_deepLTS(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_deepLTS(L).eq.0) then
outctr_deepLTS(L) = 1
outtime_deepLTS(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+deepLTS_base !3259 ! cell number adjusted to gid
else
if ((time-outtime_deepLTS(outctr_deepLTS(L),L))
& .gt. axon_refrac_time) then
outctr_deepLTS(L) = outctr_deepLTS(L) + 1
outtime_deepLTS (outctr_deepLTS(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+deepLTS_base !3259 ! cell number adjusted to gid
endif
endif
endif
end do ! do L = 1, num_deepLTS
do L = 1, num_TCR
if (distal_axon_TCR(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_TCR(L).eq.0) then
outctr_TCR(L) = 1
outtime_TCR(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+TCR_base !3359 ! cell number adjusted to gid
else
if ((time-outtime_TCR(outctr_TCR(L),L))
& .gt. axon_refrac_time) then
outctr_TCR(L) = outctr_TCR(L) + 1
outtime_TCR (outctr_TCR(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+TCR_base !3359 ! cell number adjusted to gid
endif
endif
endif
end do ! do L = 1, num_TCR
do L = 1, num_nRT
if (distal_axon_nRT(L).ge.0.d0) then
c with threshold = 0, means axonal spike must be overshooting.
if (outctr_nRT(L).eq.0) then
outctr_nRT(L) = 1
outtime_nRT(1,L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+nRT_base !3459 ! cell number adjusted to gid
else
if ((time-outtime_nRT(outctr_nRT(L),L))
& .gt. axon_refrac_time) then
outctr_nRT(L) = outctr_nRT(L) + 1
outtime_nRT (outctr_nRT(L),L) = time
open(39,FILE='data/out.dat')
write(39,FMT='(F10.3,I5)' ) time, L+nRT_base !3459 ! cell number adjusted to gid
endif
endif
endif
end do ! do L = 1, num_nRT
ENDIF ! if (mod(O,how_often).eq.0) ...
! End updating outctr's and outtime tables
! Set up output data to be written
if (mod(O, 50) == 0) then
if (thisno.eq.0) then
outrcd( 1) = time
outrcd( 2) = v_suppyrRS(1,2)
outrcd( 3) = v_suppyrRS(numcomp_suppyrRS,2)
outrcd( 4) = v_suppyrRS(43,2)
z = 0.d0
do i = 1, num_suppyrRS
z = z - v_suppyrRS(1,i)
end do
outrcd( 5) = z / dble(num_suppyrRS) ! - av. cell somata
z = 0.d0
do i = 1, numcomp_suppyrRS
z = z + gAMPA_suppyrRS(i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_suppyrRS
z = z + gNMDA_suppyrRS(i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_suppyrRS
z = z + gGABA_A_suppyrRS(i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_suppyrRS(1,3)
outrcd(10) = v_suppyrRS(1,4)
z = 0.d0
do i = 1, num_suppyrRS
if(v_suppyrRS(numcomp_suppyrRS,i) .gt. 0.d0) z = z + 1.d0
end do
outrcd(11) = z
outrcd(12) = field_1mm_suppyrRS
outrcd(13) = field_2mm_suppyrRS
OPEN(11,FILE='GROUCHO110.suppyrRS')
WRITE (11,FMT='(13F10.4)') (OUTRCD(I),I=1,13)
else if (thisno.eq.1) then
outrcd( 1) = time
outrcd( 2) = v_suppyrFRB(1,2)
outrcd( 3) = v_suppyrFRB(numcomp_suppyrFRB,2)
outrcd( 4) = v_suppyrFRB(43,2)
z = 0.d0
do i = 1, num_suppyrFRB
z = z - v_suppyrFRB(1,i)
end do
outrcd( 5) = z / dble(num_suppyrFRB) ! - av. cell somata
z = 0.d0
do i = 1, numcomp_suppyrFRB
z = z + gAMPA_suppyrFRB(i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_suppyrFRB
z = z + gNMDA_suppyrFRB(i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_suppyrFRB
z = z + gGABA_A_suppyrFRB(i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_suppyrFRB(1,3)
outrcd(10) = v_suppyrFRB(1,4)
outrcd(11) = field_1mm_suppyrFRB
outrcd(12) = field_2mm_suppyrFRB
OPEN(12,FILE='GROUCHO110.suppyrFRB')
WRITE (12,FMT='(12F10.4)') (OUTRCD(I),I=1,12)
else if (thisno.eq.2) then
outrcd( 1) = time
outrcd( 2) = v_supbask (1,2)
outrcd( 3) = v_supbask (numcomp_supbask,2)
outrcd( 4) = v_supbask (43,2)
z = 0.d0
do i = 1, num_supbask
z = z - v_supbask(1,i)
end do
outrcd( 5) = z / dble(num_supbask ) ! - av. cell somata
z = 0.d0
do i = 1, numcomp_supbask
z = z + gAMPA_supbask (i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_supbask
z = z + gNMDA_supbask (i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_supbask
z = z + gGABA_A_supbask (i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_supbask (1,3)
outrcd(10) = v_supbask (1,4)
OPEN(13,FILE='GROUCHO110.supbask')
WRITE (13,FMT='(10F10.4)') (OUTRCD(I),I=1,10)
else if (thisno.eq.3) then
outrcd( 1) = time
outrcd( 2) = v_supaxax (1,2)
outrcd( 3) = v_supaxax (numcomp_supaxax ,2)
outrcd( 4) = v_supaxax (43,2)
z = 0.d0
do i = 1, num_supaxax
z = z - v_supaxax(1,i)
end do
outrcd( 5) = z / dble(num_supaxax ) ! -av. cell somata
z = 0.d0
do i = 1, numcomp_supaxax
z = z + gAMPA_supaxax (i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_supaxax
z = z + gNMDA_supaxax (i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_supaxax
z = z + gGABA_A_supaxax (i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_supaxax (1,3)
outrcd(10) = v_supaxax (1,4)
OPEN(14,FILE='GROUCHO110.supaxax')
WRITE (14,FMT='(10F10.4)') (OUTRCD(I),I=1,10)
else if (thisno.eq.4) then
outrcd( 1) = time
outrcd( 2) = v_supLTS (1,2)
outrcd( 3) = v_supLTS (numcomp_supLTS ,2)
outrcd( 4) = v_supLTS (43,2)
z = 0.d0
do i = 1, num_supLTS
z = z - v_supLTS(1,i)
end do
outrcd( 5) = z / dble(num_supLTS ) ! -av. cell somata
z = 0.d0
do i = 1, numcomp_supLTS
z = z + gAMPA_supLTS (i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_supLTS
z = z + gNMDA_supLTS (i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_supLTS
z = z + gGABA_A_supLTS (i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_supLTS (1,3)
outrcd(10) = v_supLTS (1,4)
OPEN(15,FILE='GROUCHO110.supLTS')
WRITE (15,FMT='(10F10.4)') (OUTRCD(I),I=1,10)
else if (thisno.eq.5) then
outrcd( 1) = time
outrcd( 2) = v_spinstell(1,2)
outrcd( 3) = v_spinstell(numcomp_spinstell,2)
outrcd( 4) = v_spinstell(43,2)
z = 0.d0
do i = 1, num_spinstell
z = z - v_spinstell(1,i)
end do
outrcd( 5) = z / dble(num_spinstell) ! -av. cell somata
z = 0.d0
do i = 1, numcomp_spinstell
z = z + gAMPA_spinstell(i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_spinstell
z = z + gNMDA_spinstell(i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_spinstell
z = z + gGABA_A_spinstell(i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_spinstell(1,3)
outrcd(10) = v_spinstell(1,4)
OPEN(16,FILE='GROUCHO110.spinstell')
WRITE (16,FMT='(10F10.4)') (OUTRCD(I),I=1,10)
else if (thisno.eq.6) then
outrcd( 1) = time
outrcd( 2) = v_tuftIB (1,4)
outrcd( 3) = v_tuftIB (numcomp_tuftIB ,4)
outrcd( 4) = v_tuftIB (43,4)
z = 0.d0
do i = 1, num_tuftIB
z = z - v_tuftIB(1,i)
end do
outrcd( 5) = z / dble(num_tuftIB ) ! -av. cell somata
z = 0.d0
do i = 1, numcomp_tuftIB
z = z + gAMPA_tuftIB (i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_tuftIB
z = z + gNMDA_tuftIB (i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_tuftIB
z = z + gGABA_A_tuftIB (i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_tuftIB (1,3)
outrcd(10) = v_tuftIB (1,2)
outrcd(11) = field_1mm_tuftIB
outrcd(12) = field_2mm_tuftIB
outrcd(13) = v_tuftIB (numcomp_tuftIB, 2)
outrcd(14) = v_tuftIB (1, 8)
outrcd(15) = v_tuftIB (numcomp_tuftIB, 8)
outrcd(16) = v_tuftIB (1, 9)
outrcd(17) = v_tuftIB (numcomp_tuftIB, 9)
outrcd(18) = v_tuftIB (1, 10)
outrcd(19) = v_tuftIB (numcomp_tuftIB, 10)
OPEN(17,FILE='GROUCHO110.tuftIB')
WRITE (17,FMT='(19F10.4)') (OUTRCD(I),I=1,19)
else if (thisno.eq.7) then
outrcd( 1) = time
outrcd( 2) = v_tuftRS (1,2)
outrcd( 3) = v_tuftRS (numcomp_tuftRS ,2)
outrcd( 4) = v_tuftRS (43,2)
z = 0.d0
do i = 1, num_tuftRS
z = z - v_tuftRS(1,i)
end do
outrcd( 5) = z / dble(num_tuftRS ) ! -av. cell somata
z = 0.d0
do i = 1, numcomp_tuftRS
z = z + gAMPA_tuftRS (i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_tuftRS
z = z + gNMDA_tuftRS (i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_tuftRS
z = z + gGABA_A_tuftRS (i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_tuftRS (1,3)
outrcd(10) = v_tuftRS (1,4)
outrcd(11) = field_1mm_tuftRS
outrcd(12) = field_2mm_tuftRS
OPEN(18,FILE='GROUCHO110.tuftRS')
WRITE (18,FMT='(12F10.4)') (OUTRCD(I),I=1,12)
else if (thisno.eq.8) then
outrcd( 1) = time
outrcd( 2) = v_nontuftRS(1,2)
outrcd( 3) = v_nontuftRS(numcomp_nontuftRS,2)
outrcd( 4) = v_nontuftRS(43,2)
z = 0.d0
do i = 1, num_nontuftRS
z = z - v_nontuftRS(1,i)
end do
outrcd( 5) = z / dble(num_nontuftRS) ! -av. cell somata
z = 0.d0
do i = 1, numcomp_nontuftRS
z = z + gAMPA_nontuftRS(i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_nontuftRS
z = z + gNMDA_nontuftRS(i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_nontuftRS
z = z + gGABA_A_nontuftRS(i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_nontuftRS(1,3)
outrcd(10) = v_nontuftRS(1,4)
outrcd(11) = field_1mm_nontuftRS
outrcd(12) = field_2mm_nontuftRS
OPEN(19,FILE='GROUCHO110.nontuftRS')
WRITE (19,FMT='(12F10.4)') (OUTRCD(I),I=1,12)
else if (thisno.eq.9) then
outrcd( 1) = time
outrcd( 2) = v_deepbask (1,2)
outrcd( 3) = v_deepbask (numcomp_deepbask ,2)
outrcd( 4) = v_deepbask (43,2)
z = 0.d0
do i = 1, num_deepbask
z = z - v_deepbask(1,i)
end do
outrcd( 5) = z / dble(num_deepbask ) ! -av. cell somata
z = 0.d0
do i = 1, numcomp_deepbask
z = z + gAMPA_deepbask (i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_deepbask
z = z + gNMDA_deepbask (i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_deepbask
z = z + gGABA_A_deepbask (i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_deepbask (1,3)
outrcd(10) = v_deepbask (1,4)
OPEN(20,FILE='GROUCHO110.deepbask')
WRITE (20,FMT='(10F10.4)') (OUTRCD(I),I=1,10)
else if (thisno.eq.10) then
outrcd( 1) = time
outrcd( 2) = v_deepaxax (1,2)
outrcd( 3) = v_deepaxax (numcomp_deepaxax ,2)
outrcd( 4) = v_deepaxax (43,2)
z = 0.d0
do i = 1, num_deepaxax
z = z - v_deepaxax(1,i)
end do
outrcd( 5) = z / dble(num_deepaxax ) ! -av. cell somata
z = 0.d0
do i = 1, numcomp_deepaxax
z = z + gAMPA_deepaxax (i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_deepaxax
z = z + gNMDA_deepaxax (i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_deepaxax
z = z + gGABA_A_deepaxax (i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_deepaxax (1,3)
outrcd(10) = v_deepaxax (1,4)
OPEN(21,FILE='GROUCHO110.deepaxax')
WRITE (21,FMT='(10F10.4)') (OUTRCD(I),I=1,10)
else if (thisno.eq.11) then
outrcd( 1) = time
outrcd( 2) = v_deepLTS (1,2)
outrcd( 3) = v_deepLTS (numcomp_deepLTS ,2)
outrcd( 4) = v_deepLTS (43,2)
z = 0.d0
do i = 1, num_deepLTS
z = z - v_deepLTS(1,i)
end do
outrcd( 5) = z / dble(num_deepLTS ) ! -av. cell somata
z = 0.d0
do i = 1, numcomp_deepLTS
z = z + gAMPA_deepLTS (i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_deepLTS
z = z + gNMDA_deepLTS (i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_deepLTS
z = z + gGABA_A_deepLTS (i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_deepLTS (1,3)
outrcd(10) = v_deepLTS (1,4)
OPEN(22,FILE='GROUCHO110.deepLTS')
WRITE (22,FMT='(10F10.4)') (OUTRCD(I),I=1,10)
else if (thisno.eq.12) then
outrcd( 1) = time
outrcd( 2) = v_TCR (1,2)
! outrcd( 2) = v_TCR (135,99) ! indicates spike events for cell 99
outrcd( 3) = v_TCR (numcomp_TCR ,2)
outrcd( 4) = v_TCR (43,2)
z = 0.d0
do i = 1, num_TCR
z = z - v_TCR(1,i)
end do
outrcd( 5) = z / dble(num_TCR ) ! -av. cell somata
z = 0.d0
do i = 1, numcomp_TCR
z = z + gAMPA_TCR (i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_TCR
z = z + gNMDA_TCR (i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_TCR
z = z + gGABA_A_TCR (i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_TCR (1,3)
outrcd(10) = v_TCR (1,4)
z = 0.d0
do i = 1, num_TCR
if(v_TCR (numcomp_TCR ,i) .gt. 0.d0) z = z + 1.d0
end do
outrcd(11) = z
OPEN(23,FILE='GROUCHO110.TCR')
WRITE (23,FMT='(11F10.4)') (OUTRCD(I),I=1,11)
else if (thisno.eq.13) then
outrcd( 1) = time
outrcd( 2) = v_nRT (1,2)
outrcd( 3) = v_nRT (numcomp_nRT ,2)
outrcd( 4) = v_nRT (43,2)
z = 0.d0
do i = 1, num_nRT
z = z - v_nRT(1,i)
end do
outrcd( 5) = z / dble(num_nRT ) ! -av. cell somata
z = 0.d0
do i = 1, numcomp_nRT
z = z + gAMPA_nRT (i,2)
end do
outrcd( 6) = z * 1000.d0 ! total AMPA cell 2
z = 0.d0
do i = 1, numcomp_nRT
z = z + gNMDA_nRT (i,2)
end do
outrcd( 7) = z * 1000.d0 ! total NMDA cell 2
z = 0.d0
do i = 1, numcomp_nRT
z = z + gGABA_A_nRT (i,2)
end do
outrcd( 8) = z * 1000.d0 ! total GABA-A, cell 2
outrcd( 9) = v_nRT (1,3)
outrcd(10) = v_nRT (1,4)
z = 0.d0
do i = 1, num_nRT
if(v_nRT (numcomp_nRT ,i) .gt. 0.d0) z = z + 1.d0
end do
outrcd(11) = z
OPEN(24,FILE='GROUCHO110.nRT')
WRITE (24,FMT='(11F10.4)') (OUTRCD(I),I=1,11)
endif ! checking thisno
endif ! mod(O,100) = 0
goto 1000
c END guts of main program
2000 CONTINUE
time2 = gettime()
if (thisno.eq.0) then
write(6,3434) time2 - time1
endif
3434 format(' elapsed time = ',f8.0,' secs')
call mpi_finalize (info)
END
c end main routine