Choral
tnnp_mod.f90
Go to the documentation of this file.
1 
25 
26 
27 module tnnp_mod
28 
29  use real_type, only: rp
30 
31  implicit none
32  private
33 
34  ! %----------------------------------------%
35  ! | |
36  ! | PUBLIC DATA |
37  ! | |
38  ! %----------------------------------------%
39  public :: tnnp_ni, tnnp_ny, tnnp_nw
41 
42 
43  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
44  !! !!
45  !! IList DESCRIPTION !!
46  !! !!
47  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
48  integer, parameter :: tnnp_ni= 15 ! Number of currents
49  integer, parameter :: jna = 1
50  integer, parameter :: jnaca = 2
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
64 
65 
66  !!!!!!!!!!!!!!!!!!!!!!
67  !!
68  !! Y DESCRIPTION
69  !!
70  !!!!!!!!!!!!!!!!!!!!!!!
71  ! Y(1:NW) = W = gating variables
72  ! Y(NW+1:NY) = ( C, V ) = ( concentrations, potentiel)
73  integer, parameter :: tnnp_ny = 17 ! Number of vaiables
74  integer, parameter :: tnnp_nw = 12
75 
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
92  integer, parameter :: yv = tnnp_ny
93 
94 
95  !!!!!!!!!!!!!!!!!!!!!!!!!!!!
96  !! !!
97  !! CONSTANTES TNNP !!
98  !! !!
99  !!!!!!!!!!!!!!!!!!!!!!!!!!!!
100  ! R = 8314.472 [1E-3 J.K^{-1}.mol^{-1}]
101  ! F = 96485.3415 [A.s.mol^{-1}]
102  ! T = 310.0 [K]
103  ! RTsF = RT / F [mV]
104  real(RP), parameter :: f = 96485.3415_rp
105  real(RP), parameter :: rtsf = 26.713760659695648_rp
106  real(RP), parameter :: fsrt = 1._rp/(rtsf)
107 
108  real(RP), parameter :: vrest = -86.424_rp ! [mV] cellML = -86.2
109  real(RP), parameter :: cm = 0.185_rp ! [muF]
110 
111  ! ordre de grandeur taille cellule = 7 000 - 45 000 [micro m^3]
112  ! "A healthy adult cardiomyocyte has a cylindrical shape that is approximately 100μm
113  ! long and 10-25μm in diameter" (wikipedia)
114  real(RP), parameter :: vc = 0.016404_rp ! [mu L] = [mm^3] cellML
115  real(RP), parameter :: vsr = 0.001094_rp ! [mu L] = [mm^3] cellML
116 !!$ ! cellML = 1000 fois trop grand pour les volumes
117 !!$ real(RP), parameter :: Vc = 16404E-9_RP ! [mu L] = [mm^3]
118 !!$ real(RP), parameter :: Vsr = 1094E-9_RP ! [mu L] = [mm^3]
119 
120  real(RP), parameter :: nao = 140.0_rp ! [mM]
121  real(RP), parameter :: cao = 2.0_rp ! [mM]
122  real(RP), parameter :: ko = 5.4_rp ! [mM]
123  real(RP), parameter :: gna = 14.838_rp ! [S/mF]
124  real(RP), parameter :: gk1 = 5.405_rp ! [S/mF]
125  real(RP), parameter :: gto = 0.294_rp ! [S/mF]
126  real(RP), parameter :: gkr = 0.096_rp ! [S/mF]
127  real(RP), parameter :: gks = 0.245_rp ! [S/mF]
128  real(RP), parameter :: pkna = 0.03_rp ! sans dimension
129  real(RP), parameter :: gcal = 1.75e-4_rp ! [cm^3.muF^{-1}.s^{-1}]
130  real(RP), parameter :: knaca = 1000._rp ! [A/F]
131  real(RP), parameter :: gamma = 0.35_rp ! sans dimension
132  real(RP), parameter :: kmca = 1.38_rp ! [mM]
133  real(RP), parameter :: kmnai = 87.5_rp ! [mM]
134  real(RP), parameter :: ksat = 0.1_rp ! sans dimension
135  real(RP), parameter :: alpha = 2.5_rp ! sans dimension
136  real(RP), parameter :: pnak = 1.362_rp ! [A/F]
137  real(RP), parameter :: kmk = 1._rp ! [mM]
138  real(RP), parameter :: kmna = 40._rp ! [mM]
139  real(RP), parameter :: gpk = 0.0146_rp ! [S/mF]
140  real(RP), parameter :: gpca = 0.825_rp ! [nS/pF] ??? unite = [A/F]
141  real(RP), parameter :: kpca = 0.0005_rp ! [mM]
142  real(RP), parameter :: gbna = 2.9e-4_rp ! [S/mF]
143  real(RP), parameter :: gbca = 5.92e-4_rp ! [S/mF]
144  real(RP), parameter :: vmaxup = 4.25e-4_rp ! [mM/ms]
145  real(RP), parameter :: kup = 2.5e-4_rp ! [mM]
146  real(RP), parameter :: arel = 0.016464_rp ! [mM]
147  real(RP), parameter :: brel = 0.25_rp ! [mM]
148  real(RP), parameter :: crel = 0.008232_rp ! [mM/s]
149  real(RP), parameter :: vleak = 8.e-5_rp ! [ms{-1}]
150  real(RP), parameter :: bufc = 0.15_rp ! [mM]
151  real(RP), parameter :: kbufc = 1.e-3_rp ! [mM]
152  real(RP), parameter :: bufsr = 10._rp ! [mM]
153  real(RP), parameter :: kbufsr = 0.3_rp ! [mM]
154 
155 
156 contains
157 
158  subroutine tnnp_y0(Y)
159  real(RP), dimension(TNNP_NY), intent(out) :: Y
160 
161  ! potentiel de repos
162  y(yv) = vrest
163 
164  ! concentrations en [mM] (M=mol/L)
165  y(ynai) = 11.212_rp ! cellML = 11.6
166  y(yki) = 137.614_rp ! cellML = 138.3
167  y(ycai) = 0.445e-4_rp ! cellML = 2e-4
168  y(ycasr) = 0.513_rp ! cellML = 0.2
169 
170  ! variables de porte sans dimensions
171  y(ym) = 0.133e-2_rp ! cellML =0.00
172  y(yh) = 0.776_rp ! cellML = 0.75
173  y(yj) = 0.776_rp ! cellML = 0.75
174  y(yd) = 0.193e-4_rp ! cellML = 0.00
175  y(yf) = 1.00_rp
176  y(yfca) = 1.00_rp
177  y(yr) = 0.00_rp
178  y(ys) = 1.00_rp
179  y(yxs) = 0.297e-2_rp ! cellML = 0.00
180  y(yxr1) = 0.00_rp
181  y(yxr2) = 0.485_rp ! cellML = 1.00
182  y(yg) = 1.00_rp
183 
184  end subroutine tnnp_y0
185 
186 
187  subroutine tnnp_ab_0(a, b, I, Y, N, Na)
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
193 
194  real(RP), dimension(TNNP_NW) :: WInf, tau
195 
196  call tnnp_winf_tau(winf, tau, y)
197  b(1:tnnp_nw) = (winf - y(1:tnnp_nw)) * (1._rp / tau)
198 
199  call tnnp_g(b(tnnp_nw+1:tnnp_ny), y, i)
200 
201  end subroutine tnnp_ab_0
202 
203 
204  subroutine tnnp_ab_w(a, b, I, Y, N, Na)
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
210 
211  real(RP), dimension(TNNP_NW) :: WInf, tau
212 
213  call tnnp_winf_tau(winf, tau, y)
214 
215  tau = 1._rp/tau
216  a(1:tnnp_nw) = - tau
217 
218  b(1:tnnp_nw) = winf * tau
219 
220  call tnnp_g(b(tnnp_nw+1:tnnp_ny), y, i)
221 
222  end subroutine tnnp_ab_w
223 
224 
225  !! IList
226  !!
227  subroutine tnnp_ilist(IList, Y)
228  real(RP), dimension(TNNP_nI), intent(out) :: IList
229  real(RP), dimension(TNNP_nY), intent(in) :: Y
230 
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
234 
235  ! concentrations
236  nai = y(ynai)
237  cai = y(ycai)
238  ki = y(yki)
239  cas = y(ycasr)
240 
241  ! Potentiels de Nernst
242  ena = rtsf * log( nao / nai )
243  eca = rtsf * log( cao / cai ) * 0.5_rp
244  ek = rtsf * log( ko / ki )
245  eks = ( ko + pkna * nao )
246  eks = eks / ( ki + pkna * nai )
247  eks = rtsf* log( eks )
248 
249  v = y(yv)
250  u = v * fsrt
251 
252  !-------------!
253  ! SODIUM !
254  !-------------!
255  vme = v - ena
256 
257  ! fast sodium
258  ilist(jna) = gna * y(ym)**3 * y(yh) * y(yj) * vme
259 
260  ! Echangeur Na+/Ca2+
261  a = exp(gamma * u ) * nai**3 * cao
262  a = a - exp( (gamma-1._rp)* u ) * nao**3 * cai * alpha
263  b = ( kmnai**3 + nao**3 )*( kmca + cao )
264  b = b * ( 1._rp+ ksat * exp( (gamma-1._rp)* u ) )
265  ilist(jnaca) = knaca * a / b
266 
267  ! Echangeur Na+/K+
268  a = ( ko + kmk ) * (nai + kmna)
269  a = a * ( 1._rp + 0.1245_rp * exp( -0.1_rp* u ) + 0.0353_rp*exp(- u ) )
270  ilist(jnak) = pnak * ko * nai / a
271 
272  ! background Na
273  ilist(jbna) = gbna * vme
274 
275 
276  !-------------!
277  ! CALCIUM !
278  !-------------!
279 
280  ! Ca canal L
281  a = gcal * y(yd) * y(yf) * y(yfca)
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 )
285 
286  ! pompe Ca2+
287  ilist(jpca) = gpca * cai / (kpca + cai)
288 
289  ! background Ca
290  ilist(jbca) = gbca * (v - eca)
291 
292 
293  !-------------!
294  ! POTASSIUM !
295  !-------------!
296 
297  vme = v - ek
298 
299  ! Transient outward current
300  ilist(jto) = gto * y(yr) * y(ys) * vme
301 
302  ! Slow delayed rectifier current
303  ilist(jks) = gks * y(yxs)**2 * ( v - eks)
304 
305  ! Rapid Delayed Rectifier Current
306  !!$ a = GKr * sqrt( Ko / 5.4 ) * VmE !! modifie car Ko = 5.4
307  a = gkr * vme
308  ilist(jkr) = a * y(yxr1) * y(yxr2)
309 
310  ! Inward Rectifier K+ Current
311  ! calcul xkl_inf
312  a_k1 = 0.1_rp / ( 1._rp + exp( 0.06_rp * ( vme -200._rp ) ) )
313  b_k1 = 3._rp * exp( 2e-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 )
316  !!$ IList(jK1) = GK1 * sqrt(Ko/5.4) * xk1_inf * VmE !! modifie car Ko = 5.4
317  ilist(jk1) = gk1 * xk1_inf * vme
318 
319  ! pompe K+
320  ilist(jpk) = gpk * vme / ( 1._rp + exp( ( 25._rp - v ) / 5.98_rp ) )
321 
322 
323  !---------------------!
324  ! COURANTS INTERNES !
325  !---------------------!
326 
327  ! Iup en [mM/ms]
328  ilist(jup) = vmaxup / ( 1._rp + (kup / cai)**2 )
329 
330  ! Irel en [mM/ms]
331  a = arel * cas**2 / ( brel**2 + cas**2 ) + crel
332  ilist(jrel) = a * y(yd) * y(yg)
333 
334  ! Ileak en [mM/ms]
335  ilist(jleak) = vleak * (cas - cai)
336 
337  end subroutine tnnp_ilist
338 
339 
340  !! Winf_tau
341  !!
342  subroutine tnnp_winf_tau(Winf, tau, Y)
343  real(RP), dimension(TNNP_NY), intent(in) :: Y
344  real(RP), dimension(TNNP_NW), intent(out) :: Winf, tau
345 
346  real(RP) :: V, Cai, a, b, c
347 
348  v = y(yv)
349  cai = y(ycai)
350 
351  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! TAU
352 
353  ! tau_m
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
357  tau(ym) = a * b
358 
359  ! tau_h
360  if ( v >= -40._rp ) then
361  a = 0._rp
362  b = 0.77_rp / ( 0.13_rp * ( 1._rp + exp( -( v + 10.66_rp ) / 11.1_rp) ) )
363  else
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 )
366  end if
367  tau(yh) = 1._rp / (a + b)
368 
369  ! tau_j
370  if ( v >= -40._rp ) then
371  a = 0._rp
372  b = 0.6_rp * exp(0.057_rp*v) / (1._rp + exp( -0.1_rp*(v+32._rp) ) )
373  else
374  a = - 25428._rp * exp(0.2444_rp*v) - 6.948e-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 ) ) )
377  end if
378  tau(yj) = 1._rp / (a + b)
379 
380  ! tau_d
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 ) )
384  tau(yd) = a * b + c
385 
386  ! tau_f
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
389 
390  ! tau_fCa
391  tau(yfca) = 2._rp
392 
393  ! tau_r
394  tau(yr) = 9.5_rp * exp( -( v + 40._rp )**2 / 1800._rp ) + 0.8_rp
395 
396  ! tau_s
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
399 
400  ! tau_xs
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 ) )
403  tau(yxs) = a * b
404 
405  ! tau_xr1
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) )
408  tau(yxr1) = a * b
409 
410  ! tau_xr2
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 ) )
413  tau(yxr2) = a * b
414 
415  ! tau_g
416  tau(yg) = 2._rp
417 
418 
419  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WInf
420 
421  ! m_inf
422  winf(ym) = 1._rp / ( 1._rp + exp( (-56.86_rp - v ) / 9.03_rp ) )**2
423 
424  ! h_inf
425  winf(yh) = 1._rp / ( 1._rp + exp( ( v + 71.55_rp ) / 7.43_rp ) )**2
426 
427  ! j_inf = h_inf
428  winf(yj) = winf(yh)
429 
430  ! d_inf
431  winf(yd) = 1._rp / ( 1._rp + exp( (-5._rp - v ) / 7.5_rp ) )
432 
433  ! f_inf
434  winf(yf) = 1._rp / ( 1._rp + exp( ( v + 20._rp) / 7._rp ) )
435 
436  ! fcs_inf
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
441 
442  ! r_inf
443  winf(yr) = 1._rp/ ( 1._rp + exp( ( 20._rp- v ) / 6._rp ) )
444 
445  ! s_inf
446  winf(ys) = 1._rp / ( 1._rp + exp( ( v + 20._rp ) * 0.2_rp ) )
447 
448  ! xs_inf
449  winf(yxs) = 1._rp / ( 1._rp + exp( ( -5._rp - v ) / 14._rp ) )
450 
451 
452  ! xr1_inf
453  winf(yxr1) = 1._rp / ( 1._rp + exp( ( -26._rp - v ) / 7._rp ) )
454 
455  ! xr2_inf
456  winf(yxr2) = 1._rp / ( 1._rp + exp( ( v + 88._rp ) / 24._rp ) )
457 
458  ! g_inf
459  if ( cai < 3.5e-4_rp ) then
460  winf(yg) = 1._rp / ( 1._rp + ( cai/3.5e-4_rp )**6 )
461  else
462  winf(yg) = 1._rp / ( 1._rp + ( cai/3.5e-4_rp )**16 )
463  end if
464 
465 
466  !!!!!!!!!!!!!!!!!!!!!! APPENDING TAU TO +INFINITY
467 
468 
469  ! tau_fCa
470  if ( ( winf(yfca) > y(yfca) ) .and. ( v > -60._rp) ) then
471  tau(yfca) = 1e127_rp
472 
473  end if
474 
475  ! tau_g
476  if ( ( winf(yg) > y(yg) ) .and. ( v > -60._rp) ) then
477  tau(yg) = 1e127_rp
478  end if
479 
480  end subroutine tnnp_winf_tau
481 
482 
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
487 
488  real(RP), dimension(TNNP_NI) :: IList
489  real(RP) :: INa, IK, ICa, D1, D2, J
490 
491  ! calcul des courants ioniques
492  call tnnp_ilist(ilist, y)
493 
494  ! courant sodium total
495  ina = ilist(jna) + ilist(jbna) + 3._rp*( ilist(jnak) + ilist(jnaca) )
496 
497  ! Nai
498  g(ynai) = -ina * cm / (vc*f)
499 
500  ! courant potassium total
501  ik = sum( ilist(jto:jpk) ) - 2._rp* ilist(jnak)
502 
503  ! Ki
504  g(yki) = -( ik + i ) * cm / (vc*f)
505 
506  ! courant calcium total
507  ica = sum( ilist(jcal:jbca) ) - 2._rp* ilist(jnaca)
508 
509  ! flux intracellulaire
510  j = ilist(jleak) - ilist(jup) + ilist(jrel)
511 
512  ! Cai
513  ! calcul de D1 = d Cai-bufC / d Cai
514  d1 = bufc * kbufc / (y(ycai) + kbufc)**2 ! [sans dimension]
515  ! calcul de D2 = d Cai_total / dt
516  d2 = j - ica / (2._rp*vc*f) * cm
517  g(ycai) = d2 / ( 1._rp + d1 )
518 
519  ! Casr
520  ! calcul de D1 = d CaSR_bufrs / d CaSR
521  d1 = bufsr * kbufsr / (y(ycasr) + kbufsr)**2 ! [sans dimension]
522  ! calcul de D2 = d CaSR_total / dt
523  d2 = - j * (vc/vsr)
524  g(ycasr) = d2 / ( 1._rp + d1 )
525 
526  ! vm
527  g(yv) = - (ina + ik + ica) + i
528 
529  end subroutine tnnp_g
530 
531 end module tnnp_mod
real(rp), parameter gna
Definition: tnnp_mod.f90:123
integer, parameter jk1
Definition: tnnp_mod.f90:59
real(rp), parameter gamma
Definition: tnnp_mod.f90:131
integer, parameter yg
Definition: tnnp_mod.f90:87
subroutine, public tnnp_ab_w(a, b, I, Y, N, Na)
Definition: tnnp_mod.f90:205
integer, parameter yr
Definition: tnnp_mod.f90:82
real(rp), parameter gto
Definition: tnnp_mod.f90:125
integer, parameter ycasr
Definition: tnnp_mod.f90:91
integer, parameter yv
Definition: tnnp_mod.f90:92
integer, parameter ynai
Definition: tnnp_mod.f90:88
subroutine tnnp_winf_tau(Winf, tau, Y)
Definition: tnnp_mod.f90:343
integer, parameter jto
Definition: tnnp_mod.f90:56
real(rp), parameter gpk
Definition: tnnp_mod.f90:139
real(rp), parameter kmca
Definition: tnnp_mod.f90:132
integer, parameter yj
Definition: tnnp_mod.f90:78
real(rp), parameter bufsr
Definition: tnnp_mod.f90:152
real(rp), parameter kmna
Definition: tnnp_mod.f90:138
integer, parameter, public rp
real(kind=RP) = real precision in the code REAL_TOL = epsilon to test real equality ...
Definition: real_type.F90:90
subroutine, public tnnp_ilist(IList, Y)
Definition: tnnp_mod.f90:228
integer, parameter yxs
Definition: tnnp_mod.f90:84
integer, parameter yxr2
Definition: tnnp_mod.f90:86
real(rp), parameter arel
Definition: tnnp_mod.f90:146
integer, parameter ym
Definition: tnnp_mod.f90:76
real(rp), parameter vsr
Definition: tnnp_mod.f90:115
real(rp), parameter gpca
Definition: tnnp_mod.f90:140
real(rp), parameter f
Definition: tnnp_mod.f90:104
TNNP ionic model
Definition: tnnp_mod.f90:27
real(rp), parameter gkr
Definition: tnnp_mod.f90:126
real(rp), parameter brel
Definition: tnnp_mod.f90:147
integer, parameter, public tnnp_ny
Definition: tnnp_mod.f90:73
integer, parameter jbna
Definition: tnnp_mod.f90:52
REAL NUMBERS PRECISION IN CHORAL: selects simple/double/quad
Definition: real_type.F90:33
real(rp), parameter fsrt
Definition: tnnp_mod.f90:106
integer, parameter yxr1
Definition: tnnp_mod.f90:85
integer, parameter jcal
Definition: tnnp_mod.f90:53
real(rp), parameter ko
Definition: tnnp_mod.f90:122
subroutine tnnp_g(G, Y, I)
Definition: tnnp_mod.f90:484
real(rp), parameter knaca
Definition: tnnp_mod.f90:130
integer, parameter jnaca
Definition: tnnp_mod.f90:50
real(rp), parameter pnak
Definition: tnnp_mod.f90:136
real(rp), parameter gk1
Definition: tnnp_mod.f90:124
integer, parameter, public tnnp_nw
Definition: tnnp_mod.f90:74
real(rp), parameter alpha
Definition: tnnp_mod.f90:135
real(rp) function e(x, v1, v2)
real(rp), parameter cm
Definition: tnnp_mod.f90:109
integer, parameter jpk
Definition: tnnp_mod.f90:60
real(rp), parameter kmnai
Definition: tnnp_mod.f90:133
integer, parameter yki
Definition: tnnp_mod.f90:90
real(rp), parameter vc
Definition: tnnp_mod.f90:114
real(rp), parameter crel
Definition: tnnp_mod.f90:148
integer, parameter jks
Definition: tnnp_mod.f90:57
real(rp), parameter vrest
Definition: tnnp_mod.f90:108
real(rp), parameter kpca
Definition: tnnp_mod.f90:141
integer, parameter ys
Definition: tnnp_mod.f90:83
subroutine, public tnnp_y0(Y)
Definition: tnnp_mod.f90:159
real(rp), parameter vleak
Definition: tnnp_mod.f90:149
real(rp), parameter cao
Definition: tnnp_mod.f90:121
real(rp), parameter kbufc
Definition: tnnp_mod.f90:151
real(rp), parameter kbufsr
Definition: tnnp_mod.f90:153
integer, parameter jbca
Definition: tnnp_mod.f90:55
integer, parameter ycai
Definition: tnnp_mod.f90:89
real(rp), parameter gcal
Definition: tnnp_mod.f90:129
real(rp), parameter pkna
Definition: tnnp_mod.f90:128
real(rp), parameter bufc
Definition: tnnp_mod.f90:150
integer, parameter jup
Definition: tnnp_mod.f90:61
real(rp), parameter gbca
Definition: tnnp_mod.f90:143
real(rp), parameter gks
Definition: tnnp_mod.f90:127
integer, parameter jpca
Definition: tnnp_mod.f90:54
integer, parameter yfca
Definition: tnnp_mod.f90:81
real(rp), parameter gbna
Definition: tnnp_mod.f90:142
real(rp), parameter nao
Definition: tnnp_mod.f90:120
integer, parameter yh
Definition: tnnp_mod.f90:77
integer, parameter jna
Definition: tnnp_mod.f90:49
integer, parameter jnak
Definition: tnnp_mod.f90:51
integer, parameter, public tnnp_ni
Definition: tnnp_mod.f90:48
real(rp), parameter kmk
Definition: tnnp_mod.f90:137
integer, parameter yf
Definition: tnnp_mod.f90:80
real(rp), parameter vmaxup
Definition: tnnp_mod.f90:144
subroutine, public tnnp_ab_0(a, b, I, Y, N, Na)
Definition: tnnp_mod.f90:188
integer, parameter jrel
Definition: tnnp_mod.f90:62
real(rp), parameter rtsf
Definition: tnnp_mod.f90:105
integer, parameter yd
Definition: tnnp_mod.f90:79
integer, parameter jkr
Definition: tnnp_mod.f90:58
real(rp), parameter ksat
Definition: tnnp_mod.f90:134
real(rp), parameter kup
Definition: tnnp_mod.f90:145
integer, parameter jleak
Definition: tnnp_mod.f90:63