49 integer,
parameter ::
jna = 1
51 integer,
parameter ::
jnak = 3
52 integer,
parameter ::
jbna = 4
53 integer,
parameter ::
jcal = 5
54 integer,
parameter ::
jpca = 6
55 integer,
parameter ::
jbca = 7
56 integer,
parameter ::
jto = 8
57 integer,
parameter ::
jks = 9
58 integer,
parameter ::
jkr = 10
59 integer,
parameter ::
jk1 = 11
60 integer,
parameter ::
jpk = 12
61 integer,
parameter ::
jup = 13
62 integer,
parameter ::
jrel = 14
63 integer,
parameter ::
jleak = 15
76 integer,
parameter ::
ym = 1
77 integer,
parameter ::
yh = 2
78 integer,
parameter ::
yj = 3
79 integer,
parameter ::
yd = 4
80 integer,
parameter ::
yf = 5
81 integer,
parameter ::
yfca = 6
82 integer,
parameter ::
yr = 7
83 integer,
parameter ::
ys = 8
84 integer,
parameter ::
yxs = 9
85 integer,
parameter ::
yxr1 = 10
86 integer,
parameter ::
yxr2 = 11
87 integer,
parameter ::
yg = 12
88 integer,
parameter ::
ynai = 13
89 integer,
parameter ::
ycai = 14
90 integer,
parameter ::
yki = 15
91 integer,
parameter ::
ycasr = 16
104 real(RP),
parameter ::
f = 96485.3415_rp
105 real(RP),
parameter ::
rtsf = 26.713760659695648_rp
108 real(RP),
parameter ::
vrest = -86.424_rp
109 real(RP),
parameter ::
cm = 0.185_rp
114 real(RP),
parameter ::
vc = 0.016404_rp
115 real(RP),
parameter ::
vsr = 0.001094_rp
120 real(RP),
parameter ::
nao = 140.0_rp
121 real(RP),
parameter ::
cao = 2.0_rp
122 real(RP),
parameter ::
ko = 5.4_rp
123 real(RP),
parameter ::
gna = 14.838_rp
124 real(RP),
parameter ::
gk1 = 5.405_rp
125 real(RP),
parameter ::
gto = 0.294_rp
126 real(RP),
parameter ::
gkr = 0.096_rp
127 real(RP),
parameter ::
gks = 0.245_rp
128 real(RP),
parameter ::
pkna = 0.03_rp
129 real(RP),
parameter ::
gcal = 1.75
e-4_rp
130 real(RP),
parameter ::
knaca = 1000._rp
131 real(RP),
parameter ::
gamma = 0.35_rp
132 real(RP),
parameter ::
kmca = 1.38_rp
133 real(RP),
parameter ::
kmnai = 87.5_rp
134 real(RP),
parameter ::
ksat = 0.1_rp
135 real(RP),
parameter ::
alpha = 2.5_rp
136 real(RP),
parameter ::
pnak = 1.362_rp
137 real(RP),
parameter ::
kmk = 1._rp
138 real(RP),
parameter ::
kmna = 40._rp
139 real(RP),
parameter ::
gpk = 0.0146_rp
140 real(RP),
parameter ::
gpca = 0.825_rp
141 real(RP),
parameter ::
kpca = 0.0005_rp
142 real(RP),
parameter ::
gbna = 2.9
e-4_rp
143 real(RP),
parameter ::
gbca = 5.92
e-4_rp
145 real(RP),
parameter ::
kup = 2.5
e-4_rp
146 real(RP),
parameter ::
arel = 0.016464_rp
147 real(RP),
parameter ::
brel = 0.25_rp
148 real(RP),
parameter ::
crel = 0.008232_rp
150 real(RP),
parameter ::
bufc = 0.15_rp
152 real(RP),
parameter ::
bufsr = 10._rp
159 real(RP),
dimension(TNNP_NY),
intent(out) :: Y
167 y(
ycai) = 0.445
e-4_rp
188 real(RP),
dimension(Na),
intent(out) :: a
189 real(RP),
dimension(N) ,
intent(out) :: b
190 real(RP) ,
intent(in) :: I
191 real(RP),
dimension(N) ,
intent(in) :: Y
192 integer ,
intent(in) :: N, Na
194 real(RP),
dimension(TNNP_NW) :: WInf, tau
205 real(RP),
dimension(Na),
intent(out) :: a
206 real(RP),
dimension(N) ,
intent(out) :: b
207 real(RP) ,
intent(in) :: I
208 real(RP),
dimension(N) ,
intent(in) :: Y
209 integer ,
intent(in) :: N, Na
211 real(RP),
dimension(TNNP_NW) :: WInf, tau
228 real(RP),
dimension(TNNP_nI),
intent(out) :: IList
229 real(RP),
dimension(TNNP_nY),
intent(in) :: Y
231 real(RP) :: a, b, ENa, ECa, EK, EKs, U, V, VmE
232 real(RP) :: Nai, Cai, Ki, Cas
233 real(RP) :: a_k1, b_k1, xK1_inf
243 eca =
rtsf * log(
cao / cai ) * 0.5_rp
244 ek =
rtsf * log(
ko / ki )
246 eks = eks / ( ki +
pkna * nai )
247 eks =
rtsf* log( eks )
264 b = b * ( 1._rp+
ksat * exp( (
gamma-1._rp)* u ) )
269 a = a * ( 1._rp + 0.1245_rp * exp( -0.1_rp* u ) + 0.0353_rp*exp(- u ) )
282 a = a * 4._rp * u *
f 283 a = a * ( cai*exp( 2._rp* u ) - 0.341_rp*
cao )
284 ilist(
jcal) = a / ( exp( 2._rp* u ) - 1._rp )
303 ilist(
jks) =
gks * y(
yxs)**2 * ( v - eks)
312 a_k1 = 0.1_rp / ( 1._rp + exp( 0.06_rp * ( vme -200._rp ) ) )
313 b_k1 = 3._rp * exp( 2
e-4_rp * ( vme + 100._rp ) ) + exp( 0.1_rp * ( vme - 10._rp ) )
314 b_k1 = b_k1 / ( 1._rp + exp( -0.5_rp * ( vme ) ) )
315 xk1_inf = a_k1 / ( a_k1 + b_k1 )
317 ilist(
jk1) =
gk1 * xk1_inf * vme
320 ilist(
jpk) =
gpk * vme / ( 1._rp + exp( ( 25._rp - v ) / 5.98_rp ) )
343 real(RP),
dimension(TNNP_NY),
intent(in) :: Y
344 real(RP),
dimension(TNNP_NW),
intent(out) :: Winf, tau
346 real(RP) :: V, Cai, a, b, c
354 a = 1._rp / ( 1._rp + exp( (-60._rp - v ) * 0.2_rp ) )
355 b = 0.1_rp / ( 1._rp + exp( ( v + 35._rp ) * 0.2_rp ) )
356 b = 0.1_rp / ( 1._rp + exp( ( v - 50._rp ) * 0.005_rp ) ) + b
360 if ( v >= -40._rp )
then 362 b = 0.77_rp / ( 0.13_rp * ( 1._rp + exp( -( v + 10.66_rp ) / 11.1_rp) ) )
364 a = 0.057_rp * exp( -( v + 80._rp ) / 6.8_rp )
365 b = 2.7_rp * exp( 0.079_rp*v ) + 3.1e5_rp * exp( 0.3485_rp*v )
367 tau(
yh) = 1._rp / (a + b)
370 if ( v >= -40._rp )
then 372 b = 0.6_rp * exp(0.057_rp*v) / (1._rp + exp( -0.1_rp*(v+32._rp) ) )
374 a = - 25428._rp * exp(0.2444_rp*v) - 6.948
e-6_rp*exp(-0.04391_rp*v)
375 a = a * (v+37.78_rp) / ( 1._rp + exp( 0.311_rp*(v+79.23_rp) ) )
376 b = 0.02424_rp * exp(-0.01052_rp*v) / ( 1._rp + exp( -0.1378_rp * ( v + 40.14_rp ) ) )
378 tau(
yj) = 1._rp / (a + b)
381 a = 1.4_rp / ( 1._rp + exp( (-35._rp - v) / 13._rp ) ) + 0.25_rp
382 b = 1.4_rp / ( 1._rp + exp( ( v + 5._rp ) * 0.20_rp ) )
383 c = 1.0_rp / ( 1._rp + exp( (50._rp - v ) * 0.05_rp ) )
387 a = 165._rp / ( 1._rp + exp( (25._rp - v) * 0.1_rp ) )
388 tau(
yf) = a + 1125._rp * exp( -( v + 27._rp)**2 / 240._rp ) + 80._rp
394 tau(
yr) = 9.5_rp * exp( -( v + 40._rp )**2 / 1800._rp ) + 0.8_rp
397 a = 85._rp * exp( - ( v + 45._rp )**2 / 320._rp )
398 tau(
ys) = a + 5._rp / ( 1._rp + exp( ( v - 20._rp ) * 0.2_rp)) + 3._rp
401 a = 1100._rp / sqrt( 1._rp+ exp( (-10._rp - v ) / 6._rp ) )
402 b = 1._rp / ( 1._rp+ exp( ( v - 60._rp ) * 0.05_rp ) )
406 a = 450._rp / ( 1._rp + exp( ( -45._rp - v ) * 0.1_rp ) )
407 b = 6._rp / ( 1._rp + exp( ( v + 30._rp) / 11.5_rp) )
411 a = 3._rp / ( 1._rp + exp( ( -60._rp - v ) * 0.05_rp ) )
412 b = 1.12_rp / ( 1._rp + exp( ( v - 60._rp ) * 0.05_rp ) )
422 winf(
ym) = 1._rp / ( 1._rp + exp( (-56.86_rp - v ) / 9.03_rp ) )**2
425 winf(
yh) = 1._rp / ( 1._rp + exp( ( v + 71.55_rp ) / 7.43_rp ) )**2
431 winf(
yd) = 1._rp / ( 1._rp + exp( (-5._rp - v ) / 7.5_rp ) )
434 winf(
yf) = 1._rp / ( 1._rp + exp( ( v + 20._rp) / 7._rp ) )
437 a = 1._rp / ( 1._rp + ( cai / 0.000325_rp )**8 )
438 b = 0.1_rp / ( 1._rp + exp( ( cai - 0.0005_rp ) * 1e4_rp ) )
439 c = 0.2_rp / ( 1._rp + exp( ( cai - 0.00075_rp ) * 1250._rp ) )
440 winf(
yfca) = ( a + b + c + 0.23_rp ) / 1.46_rp
443 winf(
yr) = 1._rp/ ( 1._rp + exp( ( 20._rp- v ) / 6._rp ) )
446 winf(
ys) = 1._rp / ( 1._rp + exp( ( v + 20._rp ) * 0.2_rp ) )
449 winf(
yxs) = 1._rp / ( 1._rp + exp( ( -5._rp - v ) / 14._rp ) )
453 winf(
yxr1) = 1._rp / ( 1._rp + exp( ( -26._rp - v ) / 7._rp ) )
456 winf(
yxr2) = 1._rp / ( 1._rp + exp( ( v + 88._rp ) / 24._rp ) )
459 if ( cai < 3.5
e-4_rp )
then 460 winf(
yg) = 1._rp / ( 1._rp + ( cai/3.5
e-4_rp )**6 )
462 winf(
yg) = 1._rp / ( 1._rp + ( cai/3.5
e-4_rp )**16 )
470 if ( ( winf(
yfca) > y(
yfca) ) .and. ( v > -60._rp) )
then 476 if ( ( winf(
yg) > y(
yg) ) .and. ( v > -60._rp) )
then 483 subroutine tnnp_g(G, Y, I)
484 real(RP),
dimension(TNNP_NY) ,
intent(in) :: Y
485 real(RP) ,
intent(in) :: I
486 real(RP),
dimension(TNNP_NW+1:TNNP_NY),
intent(out) :: G
488 real(RP),
dimension(TNNP_NI) :: IList
489 real(RP) :: INa, IK, ICa, D1, D2, J
501 ik = sum( ilist(
jto:
jpk) ) - 2._rp* ilist(
jnak)
516 d2 = j - ica / (2._rp*
vc*
f) *
cm 517 g(
ycai) = d2 / ( 1._rp + d1 )
524 g(
ycasr) = d2 / ( 1._rp + d1 )
527 g(
yv) = - (ina + ik + ica) + i
real(rp), parameter gamma
subroutine, public tnnp_ab_w(a, b, I, Y, N, Na)
subroutine tnnp_winf_tau(Winf, tau, Y)
real(rp), parameter bufsr
integer, parameter, public rp
real(kind=RP) = real precision in the code REAL_TOL = epsilon to test real equality ...
subroutine, public tnnp_ilist(IList, Y)
integer, parameter, public tnnp_ny
REAL NUMBERS PRECISION IN CHORAL: selects simple/double/quad
subroutine tnnp_g(G, Y, I)
real(rp), parameter knaca
integer, parameter, public tnnp_nw
real(rp), parameter alpha
real(rp) function e(x, v1, v2)
real(rp), parameter kmnai
real(rp), parameter vrest
subroutine, public tnnp_y0(Y)
real(rp), parameter vleak
real(rp), parameter kbufc
real(rp), parameter kbufsr
integer, parameter, public tnnp_ni
real(rp), parameter vmaxup
subroutine, public tnnp_ab_0(a, b, I, Y, N, Na)