1 !**********************************************************************************
2 ! This computer software was prepared by Battelle Memorial Institute, hereinafter
3 ! the Contractor, under Contract No. DE-AC05-76RL0 1830 with the Department of
4 ! Energy (DOE). NEITHER THE GOVERNMENT NOR THE CONTRACTOR MAKES ANY WARRANTY,
5 ! EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE.
7 ! CBMZ module: see module_cbmz.F for information and terms of use
8 !**********************************************************************************
9 module module_cbmz_rodas_prep
15 !-----------------------------------------------------------------------
16 ! cbmz_v02r01_torodas.f - created on 18-nov-2003 from previous
17 ! cbmz_v02r01_torodas.f cbmz_v02r01_mapconcs.f
18 ! cbmz_v02r01_maprates.f cbmz_v02r01_dydt.f
19 ! cbmz_v02r01_jacob.f cbmz_v02r01_decomp.f
21 ! so now everything is in a single file
22 !-----------------------------------------------------------------------
24 subroutine cbmz_v02r01_torodas( &
26 stot, atol, rtol, yposlimit, yneglimit, &
27 sfixedkpp, rconstkpp, &
29 info_rodas, iok, lunerr, idydt_sngldble )
31 ! interfaces to rodas3 solver formechanism-version-regime =cbmz_v02r01
33 ! *** do not include any pegasus common blocks ***
36 use module_cbmz_rodas3_solver, only: rodas3_ff_x2
40 integer ngas, iok, lunerr, idydt_sngldble
42 real taa, tzz, hmin, hstart
43 real stot(ngas), atol(ngas), rtol(ngas)
44 real yposlimit(ngas), yneglimit(ngas)
45 real sfixedkpp(nfixed_kppmax), rconstkpp(nreact_kppmax)
49 ! external cbmz_v02r01_dydt
50 ! external cbmz_v02r01_jacob
51 ! external cbmz_v02r01_decomp
52 ! external cbmz_v02r01_solve
58 integer lu_crow_v(nvar_r01_kpp + 1)
60 integer lu_diag_v(nvar_r01_kpp + 1)
62 integer lu_icol_v(lu_nonzero_v_r01_kpp)
66 1, 4, 25, 2, 22, 24, 3, 26, 4, 25, 5, 25, &
67 6, 24, 25, 7, 19, 25, 8, 22, 28, 9, 23, 28, &
68 10, 21, 25, 11, 18, 20, 23, 25, 12, 24, 25, 28, &
69 13, 24, 25, 27, 28, 14, 21, 24, 25, 15, 19, 24, &
70 25, 3, 16, 23, 26, 27, 28, 9, 17, 18, 20, 23, &
71 24, 25, 28, 10, 14, 18, 21, 23, 24, 25, 27, 7, &
72 15, 19, 23, 24, 25, 27, 5, 15, 19, 20, 23, 24, &
73 25, 27, 14, 20, 21, 22, 23, 24, 25, 27, 8, 20, &
74 22, 23, 24, 25, 27, 28, 9, 16, 17, 18, 19, 20, &
75 21, 22, 23, 24, 25, 26, 27, 28, 4, 5, 6, 10, &
76 11, 12, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, &
77 26, 27, 28, 3, 4, 5, 6, 7, 10, 11, 12, 13, &
78 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, &
79 27, 28, 16, 22, 23, 24, 25, 26, 27, 28, 13, 16, &
80 19, 21, 22, 23, 24, 25, 26, 27, 28, 8, 9, 12, &
81 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, &
85 1, 4, 7, 9, 11, 13, 16, 19, 22, 25, 28, 33, &
86 37, 42, 46, 50, 56, 64, 72, 79, 87, 95,103,117, &
90 1, 4, 7, 9, 11, 13, 16, 19, 22, 25, 28, 33, &
91 37, 42, 46, 51, 57, 66, 74, 82, 89, 97,111,131, &
102 ! do not integrate if hmax is less/equal to hmin
103 ! because hmin is generally 0.1 s or less
104 if (hmax .le. 1.001*hmin) then
110 nvar_r01_kpp, taa, tzz, hmin, hmax, hstart, &
111 stot, atol, rtol, yposlimit, yneglimit, &
112 sfixedkpp, rconstkpp, &
113 lu_nonzero_v_r01_kpp, lu_crow_v, lu_diag_v, lu_icol_v, &
114 info_rodas, iok, lunerr, &
117 cbmz_v02r01_decomp, &
121 end subroutine cbmz_v02r01_torodas
124 !-----------------------------------------------------------------------------
125 subroutine cbmz_v02r01_mapconcs( imap, nyy, yy, yyfixed, cbox )
127 ! maps species concentrations (gaschemistry cbox array <--> kpp yy array)
128 ! for mechanism-version-regime = cbmz_v02r01
134 ! imap = mapping direction flag [input]
135 ! 0 = map cbox --> yy and yyfixed
136 ! 1 = map yy --> cbox
138 ! nyy = number of kpp "variable" species [output]
140 ! yy = kpp species concentrations array [input/output]
141 real yy(nvar_r01_kpp)
142 ! yyfixed = kpp species concentrations array [input/output]
143 real yyfixed(nfixed_kppmax)
144 ! cbox = main gaschemistry species conc array [input/output]
149 parameter ( ih2so4_kpp = 1 )
151 parameter ( ircooh_kpp = 2 )
153 parameter ( io1d_kpp = 3 )
155 parameter ( iso2_kpp = 4 )
157 parameter ( ic2h5oh_kpp = 5 )
159 parameter ( ih2o2_kpp = 6 )
161 parameter ( ic2h6_kpp = 7 )
163 parameter ( ipan_kpp = 8 )
165 parameter ( in2o5_kpp = 9 )
167 parameter ( ich3oh_kpp = 10 )
169 parameter ( ico_kpp = 11 )
171 parameter ( ihno4_kpp = 12 )
173 parameter ( ihono_kpp = 13 )
175 parameter ( ich3ooh_kpp = 14 )
177 parameter ( iethooh_kpp = 15 )
179 parameter ( io3p_kpp = 16 )
181 parameter ( ihno3_kpp = 17 )
183 parameter ( ihcho_kpp = 18 )
185 parameter ( iethp_kpp = 19 )
187 parameter ( iald2_kpp = 20 )
189 parameter ( ich3o2_kpp = 21 )
191 parameter ( ic2o3_kpp = 22 )
193 parameter ( ino3_kpp = 23 )
195 parameter ( iho2_kpp = 24 )
197 parameter ( ioh_kpp = 25 )
199 parameter ( io3_kpp = 26 )
201 parameter ( ino_kpp = 27 )
203 parameter ( ino2_kpp = 28 )
205 ! indexes declaration for fixed species
207 parameter ( ich4_kpp = 1 )
209 parameter ( ih2o_kpp = 2 )
211 parameter ( ih2_kpp = 3 )
213 parameter ( io2_kpp = 4 )
215 parameter ( in2_kpp = 5 )
221 if (imap .le. 0) goto 1000
222 if (imap .ge. 1) goto 2000
226 ! map cbox values into yyvarkpp and yyfixkpp
229 yy(ih2so4_kpp) = cbox(ih2so4_z)
230 yy(ircooh_kpp) = cbox(ircooh_z)
231 yy(io1d_kpp) = cbox(io1d_z)
232 yy(iso2_kpp) = cbox(iso2_z)
233 yy(ic2h5oh_kpp) = cbox(ic2h5oh_z)
234 yy(ih2o2_kpp) = cbox(ih2o2_z)
235 yy(ic2h6_kpp) = cbox(ic2h6_z)
236 yy(ipan_kpp) = cbox(ipan_z)
237 yy(in2o5_kpp) = cbox(in2o5_z)
238 yy(ich3oh_kpp) = cbox(ich3oh_z)
239 yy(ico_kpp) = cbox(ico_z)
240 yy(ihno4_kpp) = cbox(ihno4_z)
241 yy(ihono_kpp) = cbox(ihono_z)
242 yy(ich3ooh_kpp) = cbox(ich3ooh_z)
243 yy(iethooh_kpp) = cbox(iethooh_z)
244 yy(io3p_kpp) = cbox(io3p_z)
245 yy(ihno3_kpp) = cbox(ihno3_z)
246 yy(ihcho_kpp) = cbox(ihcho_z)
247 yy(iethp_kpp) = cbox(iethp_z)
248 yy(iald2_kpp) = cbox(iald2_z)
249 yy(ich3o2_kpp) = cbox(ich3o2_z)
250 yy(ic2o3_kpp) = cbox(ic2o3_z)
251 yy(ino3_kpp) = cbox(ino3_z)
252 yy(iho2_kpp) = cbox(iho2_z)
253 yy(ioh_kpp) = cbox(ioh_z)
254 yy(io3_kpp) = cbox(io3_z)
255 yy(ino_kpp) = cbox(ino_z)
256 yy(ino2_kpp) = cbox(ino2_z)
258 yyfixed(ich4_kpp) = cbox(ich4_z)
259 yyfixed(ih2o_kpp) = cbox(ih2o_z)
260 yyfixed(ih2_kpp) = cbox(ih2_z)
261 yyfixed(io2_kpp) = cbox(io2_z)
262 yyfixed(in2_kpp) = cbox(in2_z)
265 ! map yyvarkpp values into cbox
268 cbox(ih2so4_z) = yy(ih2so4_kpp)
269 cbox(ircooh_z) = yy(ircooh_kpp)
270 cbox(io1d_z) = yy(io1d_kpp)
271 cbox(iso2_z) = yy(iso2_kpp)
272 cbox(ic2h5oh_z) = yy(ic2h5oh_kpp)
273 cbox(ih2o2_z) = yy(ih2o2_kpp)
274 cbox(ic2h6_z) = yy(ic2h6_kpp)
275 cbox(ipan_z) = yy(ipan_kpp)
276 cbox(in2o5_z) = yy(in2o5_kpp)
277 cbox(ich3oh_z) = yy(ich3oh_kpp)
278 cbox(ico_z) = yy(ico_kpp)
279 cbox(ihno4_z) = yy(ihno4_kpp)
280 cbox(ihono_z) = yy(ihono_kpp)
281 cbox(ich3ooh_z) = yy(ich3ooh_kpp)
282 cbox(iethooh_z) = yy(iethooh_kpp)
283 cbox(io3p_z) = yy(io3p_kpp)
284 cbox(ihno3_z) = yy(ihno3_kpp)
285 cbox(ihcho_z) = yy(ihcho_kpp)
286 cbox(iethp_z) = yy(iethp_kpp)
287 cbox(iald2_z) = yy(iald2_kpp)
288 cbox(ich3o2_z) = yy(ich3o2_kpp)
289 cbox(ic2o3_z) = yy(ic2o3_kpp)
290 cbox(ino3_z) = yy(ino3_kpp)
291 cbox(iho2_z) = yy(iho2_kpp)
292 cbox(ioh_z) = yy(ioh_kpp)
293 cbox(io3_z) = yy(io3_kpp)
294 cbox(ino_z) = yy(ino_kpp)
295 cbox(ino2_z) = yy(ino2_kpp)
298 end subroutine cbmz_v02r01_mapconcs
301 !-----------------------------------------------------------------------------
302 subroutine cbmz_v02r01_maprates( &
309 ! maps reaction rate constants (host code array --> kpp rconst array)
310 ! for mechanism-version-regime = cbmz_v02r01
316 ! all are host-code reaction-rate-constant arrays [input]
321 real rconst(nreact_kppmax)
326 do i = 1, nreact_kppmax
331 rconst(1) = (rk_m1(1))
332 rconst(2) = (rk_m1(2))
333 rconst(3) = (rk_m1(3))
334 rconst(4) = (rk_m1(4))
335 rconst(5) = (rk_m1(5))
336 rconst(6) = (rk_m1(6))
337 rconst(7) = (rk_m1(7))
338 rconst(8) = (rk_m1(8))
339 rconst(9) = (rk_m1(9))
340 rconst(10) = (rk_m1(10))
341 rconst(11) = (rk_m1(11))
342 rconst(12) = (rk_m1(12))
343 rconst(13) = (rk_m1(13))
344 rconst(14) = (rk_m1(14))
345 rconst(15) = (rk_m1(15))
346 rconst(16) = (rk_m1(16))
347 rconst(17) = (rk_m1(17))
348 rconst(18) = (rk_m1(18))
349 rconst(19) = (rk_m1(19))
350 rconst(20) = (rk_m1(20))
351 rconst(21) = (rk_m1(21))
352 rconst(22) = (rk_m1(22))
353 rconst(23) = (rk_m1(23))
354 rconst(24) = (rk_m1(24))
355 rconst(25) = (rk_m1(25))
356 rconst(26) = (rk_m1(26))
357 rconst(27) = (rk_m1(27))
358 rconst(28) = (rk_m1(28))
359 rconst(29) = (rk_m1(29))
360 rconst(30) = (rk_m1(30))
361 rconst(31) = (rk_m1(31))
362 rconst(32) = (rk_m1(32))
363 rconst(33) = (rk_m1(33))
364 rconst(34) = (rk_m1(34))
365 rconst(35) = (rk_m1(35))
366 rconst(36) = (rk_m1(36))
367 rconst(37) = (rk_m1(37))
368 rconst(38) = (rk_m1(38))
369 rconst(39) = (rk_m1(39))
370 rconst(40) = (rk_m1(40))
371 rconst(41) = (rk_m1(41))
372 rconst(42) = (rk_m1(42))
373 rconst(43) = (rk_m1(43))
374 rconst(44) = (rk_m1(44))
375 rconst(45) = (rk_m1(45))
376 rconst(46) = (rk_m1(46))
377 rconst(47) = (rk_m1(47))
378 rconst(48) = (rk_m1(48))
379 rconst(49) = (rk_m1(49))
380 rconst(50) = (rk_m1(50))
381 rconst(51) = (rk_m1(51))
382 rconst(52) = (rk_m1(52))
383 rconst(53) = (rk_m1(53))
384 rconst(54) = (rk_m1(54))
385 rconst(55) = (rk_m1(55))
386 rconst(56) = (rk_m1(56))
387 rconst(57) = (rk_m1(57))
388 rconst(58) = (rk_m1(58))
389 rconst(59) = (rk_m1(59))
390 rconst(60) = (rk_m1(60))
391 rconst(61) = (rk_m1(61))
392 rconst(62) = (rk_m1(62))
393 rconst(63) = (rk_m1(63))
394 rconst(64) = (rk_m1(64))
395 rconst(65) = (rk_m1(65))
396 rconst(66) = (rk_m2(2))
397 rconst(67) = (rk_m2(3))
398 rconst(68) = (rk_m2(4))
399 rconst(69) = (rk_m2(31))
400 rconst(70) = (rk_m2(32))
401 rconst(71) = (rk_m2(34))
402 rconst(72) = (rk_m2(39))
403 rconst(73) = (rk_m2(44))
404 rconst(74) = (rk_m2(49))
406 end subroutine cbmz_v02r01_maprates
409 !-----------------------------------------------------------------------------
410 subroutine cbmz_v02r01_dydt( nvardum, tdum, v, a_var, f, rconst )
412 ! computes rates of change for mechanism-version-regime = cbmz_v02r01
418 ! nvardum = number of variable species [input]
420 ! tdum = time [input]
422 ! v = concentrations of variable species [input]
424 ! a_var = dydt for each species [output]
425 real a_var(nvar_r01_kpp)
426 ! f = concentrations of fixed species [input]
427 real f(nfixed_kppmax)
428 ! rconst = reaction rate constants [input]
429 real rconst(nreact_r01_kpp)
432 ! a = rate for each reaction
433 real a(nreact_r01_kpp)
435 ! computation of equation rates
436 a(1) = rconst(1)*v(28)
437 a(2) = rconst(2)*v(23)
438 a(3) = rconst(3)*v(13)
439 a(4) = rconst(4)*v(17)
440 a(5) = rconst(5)*v(12)
441 a(6) = rconst(6)*v(9)
442 a(7) = rconst(7)*v(26)
443 a(8) = rconst(8)*v(26)
444 a(9) = rconst(9)*v(6)
445 a(10) = rconst(10)*v(3)*f(4)
446 a(11) = rconst(11)*v(3)*f(5)
447 a(12) = rconst(12)*v(3)*f(2)
448 a(13) = rconst(13)*v(16)*f(4)
449 a(14) = rconst(14)*v(16)*v(26)
450 a(15) = rconst(15)*v(16)*v(28)
451 a(16) = rconst(16)*v(16)*v(28)
452 a(17) = rconst(17)*v(16)*v(27)
453 a(18) = rconst(18)*v(26)*v(27)
454 a(19) = rconst(19)*v(26)*v(28)
455 a(20) = rconst(20)*v(25)*v(26)
456 a(21) = rconst(21)*v(24)*v(26)
457 a(22) = rconst(22)*v(25)*f(3)
458 a(23) = rconst(23)*v(25)*v(27)
459 a(24) = rconst(24)*v(25)*v(28)
460 a(25) = rconst(25)*v(23)*v(25)
461 a(26) = rconst(26)*v(13)*v(25)
462 a(27) = rconst(27)*v(17)*v(25)
463 a(28) = rconst(28)*v(12)*v(25)
464 a(29) = rconst(29)*v(24)*v(25)
465 a(30) = rconst(30)*v(6)*v(25)
466 a(31) = rconst(31)*v(24)*v(24)
467 a(32) = rconst(32)*v(24)*v(24)*f(2)
468 a(33) = rconst(33)*v(24)*v(27)
469 a(34) = rconst(34)*v(24)*v(28)
470 a(35) = rconst(35)*v(24)*v(28)
471 a(36) = rconst(36)*v(12)
472 a(37) = rconst(37)*v(23)*v(27)
473 a(38) = rconst(38)*v(23)*v(28)
474 a(39) = rconst(39)*v(23)*v(28)
475 a(40) = rconst(40)*v(23)*v(23)
476 a(41) = rconst(41)*v(23)*v(24)
477 a(42) = rconst(42)*v(9)*f(2)
478 a(43) = rconst(43)*v(9)
479 a(44) = rconst(44)*v(11)*v(25)
480 a(45) = rconst(45)*v(4)*v(25)
481 a(46) = rconst(46)*v(25)*f(1)
482 a(47) = rconst(47)*v(7)*v(25)
483 a(48) = rconst(48)*v(10)*v(25)
484 a(49) = rconst(49)*v(18)
485 a(50) = rconst(50)*v(18)
486 a(51) = rconst(51)*v(18)*v(25)
487 a(52) = rconst(52)*v(18)*v(23)
488 a(53) = rconst(53)*v(14)
489 a(54) = rconst(54)*v(15)
490 a(55) = rconst(55)*v(14)*v(25)
491 a(56) = rconst(56)*v(15)*v(25)
492 a(57) = rconst(57)*v(21)*v(27)
493 a(58) = rconst(58)*v(19)*v(27)
494 a(59) = rconst(59)*v(21)*v(23)
495 a(60) = rconst(60)*v(19)*v(23)
496 a(61) = rconst(61)*v(21)*v(24)
497 a(62) = rconst(62)*v(19)*v(24)
498 a(63) = rconst(63)*v(21)
499 a(64) = rconst(64)*v(19)
500 a(65) = rconst(65)*v(5)*v(25)
501 a(66) = rconst(66)*v(20)
502 a(67) = rconst(67)*v(20)*v(25)
503 a(68) = rconst(68)*v(20)*v(23)
504 a(69) = rconst(69)*v(22)*v(28)
505 a(70) = rconst(70)*v(8)
506 a(71) = rconst(71)*v(22)*v(27)
507 a(72) = rconst(72)*v(22)*v(23)
508 a(73) = rconst(73)*v(22)*v(24)
509 a(74) = rconst(74)*v(22)
514 a_var(3) = a(8)-a(10)-a(11)-a(12)
517 a_var(6) = -a(9)-a(30)+a(31)+a(32)
518 a_var(7) = -a(47)+0.2*a(64)
519 a_var(8) = a(69)-a(70)
520 a_var(9) = -a(6)+a(39)-a(42)-a(43)
521 a_var(10) = -a(48)+0.34*a(63)
522 a_var(11) = -a(44)+a(49)+a(50)+a(51)+a(52)+a(66)
523 a_var(12) = -a(5)-a(28)+a(34)-a(36)
524 a_var(13) = -a(3)+a(23)-a(26)+a(35)
525 a_var(14) = -a(53)-a(55)+a(61)
526 a_var(15) = -a(54)-a(56)+a(62)
527 a_var(16) = a(1)+0.89*a(2)+a(7)+a(10)+a(11)-a(13)-a(14)-a(15) &
529 a_var(17) = -a(4)+a(24)-a(27)+0.3*a(41)+2*a(42)+a(52)+a(68)
530 a_var(18) = a(48)-a(49)-a(50)-a(51)-a(52)+a(53)+0.3*a(55)+a(57) &
532 a_var(19) = a(47)+0.5*a(56)-a(58)-a(60)-a(62)-a(64)
533 a_var(20) = a(54)+0.5*a(56)+a(58)+a(60)+0.8*a(64)+a(65)-a(66) &
535 a_var(21) = a(46)+0.7*a(55)-a(57)-a(59)-a(61)-a(63)+a(66)+a(71) &
537 a_var(22) = a(67)+a(68)-a(69)+a(70)-a(71)-a(72)-a(73)-a(74)
538 a_var(23) = -a(2)+a(6)+a(16)+a(19)-a(25)+a(27)-a(37)-a(38)-a(39) &
539 -2*a(40)-a(41)+a(43)-a(52)-a(59)-a(60)-a(68)-a(72)
540 a_var(24) = a(5)+a(20)-a(21)+a(22)+a(25)-a(29)+a(30)-2*a(31)-2 &
541 *a(32)-a(33)-a(34)-a(35)+a(36)-a(41)+a(44)+a(45) &
542 +a(48)+2*a(49)+a(51)+a(52)+a(53)+a(54)+a(57)+a(58) &
543 +a(59)+a(60)-a(61)-a(62)+0.32*a(63)+0.6*a(64)+a(65) &
545 a_var(25) = a(3)+a(4)+2*a(9)+2*a(12)-a(20)+a(21)-a(22)-a(23) &
546 -a(24)-a(25)-a(26)-a(27)-a(28)-a(29)-a(30)+a(33)+0.7 &
547 *a(41)-a(44)-a(45)-a(46)-a(47)-a(48)-a(51)+a(53) &
548 +a(54)-0.7*a(55)-0.5*a(56)-a(65)-a(67)
549 a_var(26) = -a(7)-a(8)+a(13)-a(14)-a(18)-a(19)-a(20)-a(21)+0.4 &
551 a_var(27) = a(1)+0.11*a(2)+a(3)+a(15)-a(17)-a(18)-a(23)-a(33) &
552 -a(37)+a(38)-a(57)-a(58)-a(71)
553 a_var(28) = -a(1)+0.89*a(2)+a(4)+a(5)+a(6)-a(15)-a(16)+a(17) &
554 +a(18)-a(19)-a(24)+a(25)+a(26)+a(28)+a(33)-a(34) &
555 -a(35)+a(36)+2*a(37)-a(39)+2*a(40)+0.7*a(41)+a(43) &
556 +a(57)+a(58)+a(59)+a(60)-a(69)+a(70)+a(71)+a(72)
558 end subroutine cbmz_v02r01_dydt
561 !-----------------------------------------------------------------------------
562 subroutine cbmz_v02r01_jacob( nvardum, tdum, v, jvs, f, rconst )
564 ! computes jacobian for mechanism-version-regime = cbmz_v02r01
570 ! nvardum = number of variable species [input]
572 ! tdum = time [input]
574 ! v = concentrations of variable species [input]
576 ! jvs = non-zero jacobian elements [output]
577 real jvs(lu_nonzero_v_r01_kpp)
578 ! f = concentrations of fixed species [input]
579 real f(nfixed_kppmax)
580 ! rconst = reaction rate constants [input]
581 real rconst(nreact_r01_kpp)
584 ! b(i,j) = d[reaction_rate(i)] / d[species_conc(j)]
585 real b(nreact_r01_kpp,nvar_r01_kpp)
587 ! computation of b(i,j) = da(i)/dv(j)
597 b(10,3) = rconst(10)*f(4)
598 b(11,3) = rconst(11)*f(5)
599 b(12,3) = rconst(12)*f(2)
600 b(13,16) = rconst(13)*f(4)
601 b(14,16) = rconst(14)*v(26)
602 b(14,26) = rconst(14)*v(16)
603 b(15,16) = rconst(15)*v(28)
604 b(15,28) = rconst(15)*v(16)
605 b(16,16) = rconst(16)*v(28)
606 b(16,28) = rconst(16)*v(16)
607 b(17,16) = rconst(17)*v(27)
608 b(17,27) = rconst(17)*v(16)
609 b(18,26) = rconst(18)*v(27)
610 b(18,27) = rconst(18)*v(26)
611 b(19,26) = rconst(19)*v(28)
612 b(19,28) = rconst(19)*v(26)
613 b(20,25) = rconst(20)*v(26)
614 b(20,26) = rconst(20)*v(25)
615 b(21,24) = rconst(21)*v(26)
616 b(21,26) = rconst(21)*v(24)
617 b(22,25) = rconst(22)*f(3)
618 b(23,25) = rconst(23)*v(27)
619 b(23,27) = rconst(23)*v(25)
620 b(24,25) = rconst(24)*v(28)
621 b(24,28) = rconst(24)*v(25)
622 b(25,23) = rconst(25)*v(25)
623 b(25,25) = rconst(25)*v(23)
624 b(26,13) = rconst(26)*v(25)
625 b(26,25) = rconst(26)*v(13)
626 b(27,17) = rconst(27)*v(25)
627 b(27,25) = rconst(27)*v(17)
628 b(28,12) = rconst(28)*v(25)
629 b(28,25) = rconst(28)*v(12)
630 b(29,24) = rconst(29)*v(25)
631 b(29,25) = rconst(29)*v(24)
632 b(30,6) = rconst(30)*v(25)
633 b(30,25) = rconst(30)*v(6)
634 b(31,24) = rconst(31)*2*v(24)
635 b(32,24) = rconst(32)*2*v(24)*f(2)
636 b(33,24) = rconst(33)*v(27)
637 b(33,27) = rconst(33)*v(24)
638 b(34,24) = rconst(34)*v(28)
639 b(34,28) = rconst(34)*v(24)
640 b(35,24) = rconst(35)*v(28)
641 b(35,28) = rconst(35)*v(24)
642 b(36,12) = rconst(36)
643 b(37,23) = rconst(37)*v(27)
644 b(37,27) = rconst(37)*v(23)
645 b(38,23) = rconst(38)*v(28)
646 b(38,28) = rconst(38)*v(23)
647 b(39,23) = rconst(39)*v(28)
648 b(39,28) = rconst(39)*v(23)
649 b(40,23) = rconst(40)*2*v(23)
650 b(41,23) = rconst(41)*v(24)
651 b(41,24) = rconst(41)*v(23)
652 b(42,9) = rconst(42)*f(2)
654 b(44,11) = rconst(44)*v(25)
655 b(44,25) = rconst(44)*v(11)
656 b(45,4) = rconst(45)*v(25)
657 b(45,25) = rconst(45)*v(4)
658 b(46,25) = rconst(46)*f(1)
659 b(47,7) = rconst(47)*v(25)
660 b(47,25) = rconst(47)*v(7)
661 b(48,10) = rconst(48)*v(25)
662 b(48,25) = rconst(48)*v(10)
663 b(49,18) = rconst(49)
664 b(50,18) = rconst(50)
665 b(51,18) = rconst(51)*v(25)
666 b(51,25) = rconst(51)*v(18)
667 b(52,18) = rconst(52)*v(23)
668 b(52,23) = rconst(52)*v(18)
669 b(53,14) = rconst(53)
670 b(54,15) = rconst(54)
671 b(55,14) = rconst(55)*v(25)
672 b(55,25) = rconst(55)*v(14)
673 b(56,15) = rconst(56)*v(25)
674 b(56,25) = rconst(56)*v(15)
675 b(57,21) = rconst(57)*v(27)
676 b(57,27) = rconst(57)*v(21)
677 b(58,19) = rconst(58)*v(27)
678 b(58,27) = rconst(58)*v(19)
679 b(59,21) = rconst(59)*v(23)
680 b(59,23) = rconst(59)*v(21)
681 b(60,19) = rconst(60)*v(23)
682 b(60,23) = rconst(60)*v(19)
683 b(61,21) = rconst(61)*v(24)
684 b(61,24) = rconst(61)*v(21)
685 b(62,19) = rconst(62)*v(24)
686 b(62,24) = rconst(62)*v(19)
687 b(63,21) = rconst(63)
688 b(64,19) = rconst(64)
689 b(65,5) = rconst(65)*v(25)
690 b(65,25) = rconst(65)*v(5)
691 b(66,20) = rconst(66)
692 b(67,20) = rconst(67)*v(25)
693 b(67,25) = rconst(67)*v(20)
694 b(68,20) = rconst(68)*v(23)
695 b(68,23) = rconst(68)*v(20)
696 b(69,22) = rconst(69)*v(28)
697 b(69,28) = rconst(69)*v(22)
699 b(71,22) = rconst(71)*v(27)
700 b(71,27) = rconst(71)*v(22)
701 b(72,22) = rconst(72)*v(23)
702 b(72,23) = rconst(72)*v(22)
703 b(73,22) = rconst(73)*v(24)
704 b(73,24) = rconst(73)*v(22)
705 b(74,22) = rconst(74)
707 ! construct the jacobian terms from b's
712 jvs(5) = 0.4*b(73,22)
713 jvs(6) = 0.4*b(73,24)
714 jvs(7) = -b(10,3)-b(11,3)-b(12,3)
720 jvs(13) = -b(9,6)-b(30,6)
721 jvs(14) = b(31,24)+b(32,24)
724 jvs(17) = 0.2*b(64,19)
729 jvs(22) = -b(6,9)-b(42,9)-b(43,9)
733 jvs(26) = 0.34*b(63,21)
736 jvs(29) = b(49,18)+b(50,18)+b(51,18)+b(52,18)
739 jvs(32) = -b(44,25)+b(51,25)
740 jvs(33) = -b(5,12)-b(28,12)-b(36,12)
744 jvs(37) = -b(3,13)-b(26,13)
746 jvs(39) = b(23,25)-b(26,25)
749 jvs(42) = -b(53,14)-b(55,14)
753 jvs(46) = -b(54,15)-b(56,15)
757 jvs(50) = b(10,3)+b(11,3)
758 jvs(51) = -b(13,16)-b(14,16)-b(15,16)-b(16,16)-b(17,16)
759 jvs(52) = 0.89*b(2,23)
760 jvs(53) = b(7,26)-b(14,26)
762 jvs(55) = b(1,28)-b(15,28)-b(16,28)
764 jvs(57) = -b(4,17)-b(27,17)
767 jvs(60) = 0.3*b(41,23)+b(52,23)+b(68,23)
768 jvs(61) = 0.3*b(41,24)
769 jvs(62) = b(24,25)-b(27,25)
772 jvs(65) = b(53,14)+0.3*b(55,14)
773 jvs(66) = -b(49,18)-b(50,18)-b(51,18)-b(52,18)
774 jvs(67) = b(57,21)+b(59,21)+0.66*b(63,21)
775 jvs(68) = -b(52,23)+b(59,23)
777 jvs(70) = b(48,25)-b(51,25)+0.3*b(55,25)
780 jvs(73) = 0.5*b(56,15)
781 jvs(74) = -b(58,19)-b(60,19)-b(62,19)-b(64,19)
784 jvs(77) = b(47,25)+0.5*b(56,25)
787 jvs(80) = b(54,15)+0.5*b(56,15)
788 jvs(81) = b(58,19)+b(60,19)+0.8*b(64,19)
789 jvs(82) = -b(66,20)-b(67,20)-b(68,20)
790 jvs(83) = b(60,23)-b(68,23)
792 jvs(85) = 0.5*b(56,25)+b(65,25)-b(67,25)
794 jvs(87) = 0.7*b(55,14)
796 jvs(89) = -b(57,21)-b(59,21)-b(61,21)-b(63,21)
797 jvs(90) = b(71,22)+b(72,22)+b(74,22)
798 jvs(91) = -b(59,23)+b(72,23)
800 jvs(93) = b(46,25)+0.7*b(55,25)
801 jvs(94) = -b(57,27)+b(71,27)
803 jvs(96) = b(67,20)+b(68,20)
804 jvs(97) = -b(69,22)-b(71,22)-b(72,22)-b(73,22)-b(74,22)
805 jvs(98) = b(68,23)-b(72,23)
810 jvs(103) = b(6,9)+b(43,9)
818 jvs(111) = -b(2,23)-b(25,23)-b(37,23)-b(38,23)-b(39,23)-2 &
819 *b(40,23)-b(41,23)-b(52,23)-b(59,23)-b(60,23)-b(68,23) &
822 jvs(113) = -b(25,25)+b(27,25)
825 jvs(116) = b(16,28)+b(19,28)-b(38,28)-b(39,28)
831 jvs(122) = b(5,12)+b(36,12)
834 jvs(125) = 2*b(49,18)+b(51,18)+b(52,18)
835 jvs(126) = b(58,19)+b(60,19)-b(62,19)+0.6*b(64,19)
837 jvs(128) = b(57,21)+b(59,21)-b(61,21)+0.32*b(63,21)
839 jvs(130) = b(25,23)-b(41,23)+b(52,23)+b(59,23)+b(60,23)
840 jvs(131) = -b(21,24)-b(29,24)-2*b(31,24)-2*b(32,24)-b(33,24) &
841 -b(34,24)-b(35,24)-b(41,24)-b(61,24)-b(62,24)-b(73,24)
842 jvs(132) = b(20,25)+b(22,25)+b(25,25)-b(29,25)+b(30,25)+b(44,25) &
843 +b(45,25)+b(48,25)+b(51,25)+b(65,25)
844 jvs(133) = b(20,26)-b(21,26)
845 jvs(134) = -b(33,27)+b(57,27)+b(58,27)
846 jvs(135) = -b(34,28)-b(35,28)
850 jvs(139) = 2*b(9,6)-b(30,6)
855 jvs(144) = b(3,13)-b(26,13)
856 jvs(145) = b(53,14)-0.7*b(55,14)
857 jvs(146) = b(54,15)-0.5*b(56,15)
858 jvs(147) = b(4,17)-b(27,17)
864 jvs(153) = -b(25,23)+0.7*b(41,23)
865 jvs(154) = b(21,24)-b(29,24)+b(33,24)+0.7*b(41,24)
866 jvs(155) = -b(20,25)-b(22,25)-b(23,25)-b(24,25)-b(25,25) &
867 -b(26,25)-b(27,25)-b(28,25)-b(29,25)-b(30,25)-b(44,25) &
868 -b(45,25)-b(46,25)-b(47,25)-b(48,25)-b(51,25)-0.7 &
869 *b(55,25)-0.5*b(56,25)-b(65,25)-b(67,25)
870 jvs(156) = -b(20,26)+b(21,26)
871 jvs(157) = -b(23,27)+b(33,27)
873 jvs(159) = b(13,16)-b(14,16)
874 jvs(160) = 0.4*b(73,22)
876 jvs(162) = -b(21,24)+0.4*b(73,24)
878 jvs(164) = -b(7,26)-b(8,26)-b(14,26)-b(18,26)-b(19,26)-b(20,26) &
883 jvs(168) = b(15,16)-b(17,16)
887 jvs(172) = 0.11*b(2,23)-b(37,23)+b(38,23)
891 jvs(176) = -b(17,27)-b(18,27)-b(23,27)-b(33,27)-b(37,27) &
892 -b(57,27)-b(58,27)-b(71,27)
893 jvs(177) = b(1,28)+b(15,28)+b(38,28)
895 jvs(179) = b(6,9)+b(43,9)
896 jvs(180) = b(5,12)+b(28,12)+b(36,12)
898 jvs(182) = -b(15,16)-b(16,16)+b(17,16)
901 jvs(185) = b(58,19)+b(60,19)
903 jvs(187) = b(57,21)+b(59,21)
904 jvs(188) = -b(69,22)+b(71,22)+b(72,22)
905 jvs(189) = 0.89*b(2,23)+b(25,23)+2*b(37,23)-b(39,23)+2*b(40,23) &
906 +0.7*b(41,23)+b(59,23)+b(60,23)+b(72,23)
907 jvs(190) = b(33,24)-b(34,24)-b(35,24)+0.7*b(41,24)
908 jvs(191) = -b(24,25)+b(25,25)+b(26,25)+b(28,25)
909 jvs(192) = b(18,26)-b(19,26)
910 jvs(193) = b(17,27)+b(18,27)+b(33,27)+2*b(37,27)+b(57,27) &
912 jvs(194) = -b(1,28)-b(15,28)-b(16,28)-b(19,28)-b(24,28)-b(34,28) &
913 -b(35,28)-b(39,28)-b(69,28)
915 end subroutine cbmz_v02r01_jacob
918 !-----------------------------------------------------------------------------
919 subroutine cbmz_v02r01_decomp( n, v, ier, &
920 lu_crow_v, lu_diag_v, lu_icol_v )
922 ! computes l-u-decomposition of sparse jacobian
923 ! for mechanism-version-regime = cbmz_v02r01
929 ! n = number of variable species [input]
931 ! ier = status flag [output]
932 ! 0 = success other = failure [output]
935 ! v = non-zero elements of the sparse jacobian [input]
936 real v(lu_nonzero_v_r01_kpp)
938 integer lu_crow_v(nvar_r01_kpp + 1)
939 integer lu_diag_v(nvar_r01_kpp + 1)
940 integer lu_icol_v(lu_nonzero_v_r01_kpp)
944 real a, w(nvar_r01_kpp + 1)
948 if ( v( lu_diag_v(k) ) .eq. 0. ) then
952 do kk = lu_crow_v(k), lu_crow_v(k+1)-1
953 w( lu_icol_v(kk) ) = v(kk)
955 do kk = lu_crow_v(k), lu_diag_v(k)-1
957 a = -w(j) / v( lu_diag_v(j) )
959 do jj = lu_diag_v(j)+1, lu_crow_v(j+1)-1
960 w( lu_icol_v(jj) ) = w( lu_icol_v(jj) ) + a*v(jj)
963 do kk = lu_crow_v(k), lu_crow_v(k+1)-1
964 v(kk) = w( lu_icol_v(kk) )
968 end subroutine cbmz_v02r01_decomp
971 !-----------------------------------------------------------------------------
972 subroutine cbmz_v02r01_solve( jvs, x )
974 ! does back-solve for mechanism-version-regime = cbmz_v02r01
979 ! jvs = the non-zero elements of the l-u-decomposition
980 ! of the augmented jacobian [input]
982 ! x = the right-hand side of the linear equation set being solved [on input]
983 ! x = concentrations of variable species [on output]
987 x(16) = x(16)-jvs(50)*x(3)
988 x(17) = x(17)-jvs(56)*x(9)
989 x(18) = x(18)-jvs(64)*x(10)-jvs(65)*x(14)
990 x(19) = x(19)-jvs(72)*x(7)-jvs(73)*x(15)
991 x(20) = x(20)-jvs(79)*x(5)-jvs(80)*x(15)-jvs(81)*x(19)
992 x(21) = x(21)-jvs(87)*x(14)-jvs(88)*x(20)
993 x(22) = x(22)-jvs(95)*x(8)-jvs(96)*x(20)
994 x(23) = x(23)-jvs(103)*x(9)-jvs(104)*x(16)-jvs(105)*x(17) &
995 -jvs(106)*x(18)-jvs(107)*x(19)-jvs(108)*x(20)-jvs(109) &
996 *x(21)-jvs(110)*x(22)
997 x(24) = x(24)-jvs(117)*x(4)-jvs(118)*x(5)-jvs(119)*x(6)-jvs(120) &
998 *x(10)-jvs(121)*x(11)-jvs(122)*x(12)-jvs(123)*x(14) &
999 -jvs(124)*x(15)-jvs(125)*x(18)-jvs(126)*x(19)-jvs(127) &
1000 *x(20)-jvs(128)*x(21)-jvs(129)*x(22)-jvs(130)*x(23)
1001 x(25) = x(25)-jvs(136)*x(3)-jvs(137)*x(4)-jvs(138)*x(5)-jvs(139) &
1002 *x(6)-jvs(140)*x(7)-jvs(141)*x(10)-jvs(142)*x(11) &
1003 -jvs(143)*x(12)-jvs(144)*x(13)-jvs(145)*x(14)-jvs(146) &
1004 *x(15)-jvs(147)*x(17)-jvs(148)*x(18)-jvs(149)*x(19) &
1005 -jvs(150)*x(20)-jvs(151)*x(21)-jvs(152)*x(22)-jvs(153) &
1006 *x(23)-jvs(154)*x(24)
1007 x(26) = x(26)-jvs(159)*x(16)-jvs(160)*x(22)-jvs(161)*x(23) &
1008 -jvs(162)*x(24)-jvs(163)*x(25)
1009 x(27) = x(27)-jvs(167)*x(13)-jvs(168)*x(16)-jvs(169)*x(19) &
1010 -jvs(170)*x(21)-jvs(171)*x(22)-jvs(172)*x(23)-jvs(173) &
1011 *x(24)-jvs(174)*x(25)-jvs(175)*x(26)
1012 x(28) = x(28)-jvs(178)*x(8)-jvs(179)*x(9)-jvs(180)*x(12) &
1013 -jvs(181)*x(13)-jvs(182)*x(16)-jvs(183)*x(17)-jvs(184) &
1014 *x(18)-jvs(185)*x(19)-jvs(186)*x(20)-jvs(187)*x(21) &
1015 -jvs(188)*x(22)-jvs(189)*x(23)-jvs(190)*x(24)-jvs(191) &
1016 *x(25)-jvs(192)*x(26)-jvs(193)*x(27)
1017 x(28) = x(28)/jvs(194)
1018 x(27) = (x(27)-jvs(177)*x(28))/(jvs(176))
1019 x(26) = (x(26)-jvs(165)*x(27)-jvs(166)*x(28))/(jvs(164))
1020 x(25) = (x(25)-jvs(156)*x(26)-jvs(157)*x(27)-jvs(158)*x(28))/ &
1022 x(24) = (x(24)-jvs(132)*x(25)-jvs(133)*x(26)-jvs(134)*x(27) &
1023 -jvs(135)*x(28))/(jvs(131))
1024 x(23) = (x(23)-jvs(112)*x(24)-jvs(113)*x(25)-jvs(114)*x(26) &
1025 -jvs(115)*x(27)-jvs(116)*x(28))/(jvs(111))
1026 x(22) = (x(22)-jvs(98)*x(23)-jvs(99)*x(24)-jvs(100)*x(25) &
1027 -jvs(101)*x(27)-jvs(102)*x(28))/(jvs(97))
1028 x(21) = (x(21)-jvs(90)*x(22)-jvs(91)*x(23)-jvs(92)*x(24)-jvs(93) &
1029 *x(25)-jvs(94)*x(27))/(jvs(89))
1030 x(20) = (x(20)-jvs(83)*x(23)-jvs(84)*x(24)-jvs(85)*x(25)-jvs(86) &
1032 x(19) = (x(19)-jvs(75)*x(23)-jvs(76)*x(24)-jvs(77)*x(25)-jvs(78) &
1034 x(18) = (x(18)-jvs(67)*x(21)-jvs(68)*x(23)-jvs(69)*x(24)-jvs(70) &
1035 *x(25)-jvs(71)*x(27))/(jvs(66))
1036 x(17) = (x(17)-jvs(58)*x(18)-jvs(59)*x(20)-jvs(60)*x(23)-jvs(61) &
1037 *x(24)-jvs(62)*x(25)-jvs(63)*x(28))/(jvs(57))
1038 x(16) = (x(16)-jvs(52)*x(23)-jvs(53)*x(26)-jvs(54)*x(27)-jvs(55) &
1040 x(15) = (x(15)-jvs(47)*x(19)-jvs(48)*x(24)-jvs(49)*x(25))/ &
1042 x(14) = (x(14)-jvs(43)*x(21)-jvs(44)*x(24)-jvs(45)*x(25))/ &
1044 x(13) = (x(13)-jvs(38)*x(24)-jvs(39)*x(25)-jvs(40)*x(27)-jvs(41) &
1046 x(12) = (x(12)-jvs(34)*x(24)-jvs(35)*x(25)-jvs(36)*x(28))/ &
1048 x(11) = (x(11)-jvs(29)*x(18)-jvs(30)*x(20)-jvs(31)*x(23)-jvs(32) &
1050 x(10) = (x(10)-jvs(26)*x(21)-jvs(27)*x(25))/(jvs(25))
1051 x(9) = (x(9)-jvs(23)*x(23)-jvs(24)*x(28))/(jvs(22))
1052 x(8) = (x(8)-jvs(20)*x(22)-jvs(21)*x(28))/(jvs(19))
1053 x(7) = (x(7)-jvs(17)*x(19)-jvs(18)*x(25))/(jvs(16))
1054 x(6) = (x(6)-jvs(14)*x(24)-jvs(15)*x(25))/(jvs(13))
1055 x(5) = (x(5)-jvs(12)*x(25))/(jvs(11))
1056 x(4) = (x(4)-jvs(10)*x(25))/(jvs(9))
1057 x(3) = (x(3)-jvs(8)*x(26))/(jvs(7))
1058 x(2) = (x(2)-jvs(5)*x(22)-jvs(6)*x(24))/(jvs(4))
1059 x(1) = (x(1)-jvs(2)*x(4)-jvs(3)*x(25))/(jvs(1))
1061 end subroutine cbmz_v02r01_solve
1064 ! cbmz_v02r02_torodas.f - created on 17-nov-2003 from previous
1065 ! cbmz_v02r02_torodas.f cbmz_v02r02_mapconcs.f
1066 ! cbmz_v02r02_maprates.f cbmz_v02r02_dydt.f
1067 ! cbmz_v02r02_jacob.f cbmz_v02r02_decomp.f
1068 ! cbmz_v02r02_solve.f
1069 ! so now everything is in a single file
1070 !-----------------------------------------------------------------------
1072 subroutine cbmz_v02r02_torodas( &
1074 stot, atol, rtol, yposlimit, yneglimit, &
1075 sfixedkpp, rconstkpp, &
1077 info_rodas, iok, lunerr, idydt_sngldble )
1079 ! interfaces to rodas3 solver formechanism-version-regime =cbmz_v02r02
1081 ! *** do not include any pegasus common blocks ***
1083 use module_data_cbmz
1084 use module_cbmz_rodas3_solver, only: rodas3_ff_x2
1088 integer ngas, iok, lunerr, idydt_sngldble
1089 integer info_rodas(6)
1090 real taa, tzz, hmin, hstart
1091 real stot(ngas), atol(ngas), rtol(ngas)
1092 real yposlimit(ngas), yneglimit(ngas)
1093 real sfixedkpp(nfixed_kppmax), rconstkpp(nreact_kppmax)
1097 ! external cbmz_v02r02_dydt
1098 ! external cbmz_v02r02_jacob
1099 ! external cbmz_v02r02_decomp
1100 ! external cbmz_v02r02_solve
1106 integer lu_crow_v(nvar_r02_kpp + 1)
1108 integer lu_diag_v(nvar_r02_kpp + 1)
1110 integer lu_icol_v(lu_nonzero_v_r02_kpp)
1113 data( lu_icol_v(i), i = 1, 252 ) / &
1114 1, 5, 44, 2, 20, 30, 43, 3, 30, 33, 42, 43, &
1115 45, 4, 43, 5, 44, 6, 44, 7, 42, 44, 8, 35, &
1116 44, 9, 45, 47, 10, 44, 11, 47, 48, 12, 44, 12, &
1117 13, 25, 44, 14, 23, 44, 47, 48, 15, 42, 44, 47, &
1118 10, 12, 16, 44, 46, 17, 38, 42, 44, 18, 35, 42, &
1119 44, 19, 42, 44, 46, 47, 20, 43, 44, 21, 30, 33, &
1120 38, 43, 44, 4, 22, 43, 46, 47, 48, 10, 12, 23, &
1121 44, 48, 20, 24, 27, 30, 31, 33, 34, 37, 43, 44, &
1122 48, 13, 25, 28, 30, 33, 36, 40, 41, 43, 44, 46, &
1123 48, 11, 23, 26, 31, 34, 37, 42, 44, 47, 48, 16, &
1124 23, 27, 43, 44, 46, 48, 28, 39, 40, 42, 44, 28, &
1125 29, 33, 39, 40, 41, 42, 43, 44, 46, 48, 30, 43, &
1126 44, 48, 17, 20, 21, 27, 30, 31, 33, 36, 38, 39, &
1127 42, 43, 44, 46, 48, 10, 12, 20, 23, 27, 28, 30, &
1128 32, 33, 34, 39, 40, 41, 42, 43, 44, 46, 48, 33, &
1129 43, 44, 48, 12, 27, 28, 30, 33, 34, 39, 40, 42, &
1130 43, 44, 46, 48, 8, 18, 28, 30, 33, 35, 39, 40, &
1131 41, 42, 43, 44, 46, 48, 30, 33, 36, 41, 42, 43, &
1132 44, 46, 48, 6, 18, 20, 27, 28, 30, 33, 35, 36, &
1133 37, 39, 40, 41, 42, 43, 44, 46, 48, 17, 29, 30, &
1134 33, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48 /
1136 data( lu_icol_v(i), i = 253, 459 ) / &
1137 29, 33, 39, 40, 41, 42, 43, 44, 46, 48, 13, 25, &
1138 28, 30, 33, 36, 39, 40, 41, 42, 43, 44, 46, 48, &
1139 14, 16, 23, 36, 40, 41, 42, 43, 44, 46, 47, 48, &
1140 5, 6, 7, 10, 12, 15, 16, 17, 18, 20, 21, 23, &
1141 24, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, &
1142 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 20, 22, &
1143 27, 30, 33, 42, 43, 44, 45, 46, 47, 48, 4, 5, &
1144 6, 7, 8, 10, 12, 13, 15, 17, 18, 19, 20, 21, &
1145 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, &
1146 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, &
1147 48, 9, 27, 29, 30, 33, 34, 37, 39, 40, 41, 42, &
1148 43, 44, 45, 46, 47, 48, 16, 19, 22, 32, 33, 34, &
1149 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, &
1150 48, 9, 11, 14, 15, 16, 19, 22, 23, 26, 31, 32, &
1151 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, &
1152 45, 46, 47, 48, 11, 22, 23, 26, 30, 31, 32, 33, &
1153 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, &
1157 1, 4, 8, 14, 16, 18, 20, 23, 26, 29, 31, 34, &
1158 36, 40, 45, 49, 54, 58, 62, 67, 70, 76, 82, 87, &
1159 98,110,120,127,132,143,147,162,180,184,197,211, &
1160 220,238,253,263,277,289,323,335,374,391,410,437, &
1164 1, 4, 8, 14, 16, 18, 20, 23, 26, 29, 31, 34, &
1165 37, 40, 45, 51, 54, 58, 62, 67, 70, 77, 84, 88, &
1166 99,112,122,127,133,143,152,169,180,189,202,213, &
1167 229,243,255,270,282,316,329,369,387,407,435,459, &
1178 ! do not integrate if hmax is less/equal to hmin
1179 ! because hmin is generally 0.1 s or less
1180 if (hmax .le. 1.001*hmin) then
1185 call rodas3_ff_x2( &
1186 nvar_r02_kpp, taa, tzz, hmin, hmax, hstart, &
1187 stot, atol, rtol, yposlimit, yneglimit, &
1188 sfixedkpp, rconstkpp, &
1189 lu_nonzero_v_r02_kpp, lu_crow_v, lu_diag_v, lu_icol_v, &
1190 info_rodas, iok, lunerr, &
1192 cbmz_v02r02_jacob, &
1193 cbmz_v02r02_decomp, &
1197 end subroutine cbmz_v02r02_torodas
1200 !-----------------------------------------------------------------------------
1201 subroutine cbmz_v02r02_mapconcs( imap, nyy, yy, yyfixed, cbox )
1203 ! maps species concentrations (gaschemistry cbox array <--> kpp yy array)
1204 ! for mechanism-version-regime = cbmz_v02r02
1206 use module_data_cbmz
1210 ! imap = mapping direction flag [input]
1211 ! 0 = map cbox --> yy and yyfixed
1212 ! 1 = map yy --> cbox
1214 ! nyy = number of kpp "variable" species [output]
1216 ! yy = kpp species concentrations array [input/output]
1217 real yy(nvar_r02_kpp)
1218 ! yyfixed = kpp species concentrations array [input/output]
1219 real yyfixed(nfixed_kppmax)
1220 ! cbox = main gaschemistry species conc array [input/output]
1225 parameter ( ih2so4_kpp = 1 )
1227 parameter ( ihcooh_kpp = 2 )
1229 parameter ( ircooh_kpp = 3 )
1231 parameter ( io1d_kpp = 4 )
1233 parameter ( iso2_kpp = 5 )
1235 parameter ( ic2h5oh_kpp = 6 )
1237 parameter ( ih2o2_kpp = 7 )
1239 parameter ( ic2h6_kpp = 8 )
1241 parameter ( ipan_kpp = 9 )
1243 parameter ( itol_kpp = 10 )
1245 parameter ( in2o5_kpp = 11 )
1247 parameter ( ixyl_kpp = 12 )
1249 parameter ( ipar_kpp = 13 )
1251 parameter ( icro_kpp = 14 )
1253 parameter ( ihno4_kpp = 15 )
1255 parameter ( ito2_kpp = 16 )
1257 parameter ( ich3ooh_kpp = 17 )
1259 parameter ( iethooh_kpp = 18 )
1261 parameter ( ihono_kpp = 19 )
1263 parameter ( ieth_kpp = 20 )
1265 parameter ( ich3oh_kpp = 21 )
1267 parameter ( io3p_kpp = 22 )
1269 parameter ( icres_kpp = 23 )
1271 parameter ( ico_kpp = 24 )
1273 parameter ( ixpar_kpp = 25 )
1275 parameter ( ihno3_kpp = 26 )
1277 parameter ( iopen_kpp = 27 )
1279 parameter ( irooh_kpp = 28 )
1281 parameter ( iaone_kpp = 29 )
1283 parameter ( iolet_kpp = 30 )
1285 parameter ( ihcho_kpp = 31 )
1287 parameter ( ixo2_kpp = 32 )
1289 parameter ( iolei_kpp = 33 )
1291 parameter ( imgly_kpp = 34 )
1293 parameter ( iethp_kpp = 35 )
1295 parameter ( inap_kpp = 36 )
1297 parameter ( iald2_kpp = 37 )
1299 parameter ( ich3o2_kpp = 38 )
1301 parameter ( iano2_kpp = 39 )
1303 parameter ( iro2_kpp = 40 )
1305 parameter ( ionit_kpp = 41 )
1307 parameter ( iho2_kpp = 42 )
1309 parameter ( io3_kpp = 43 )
1311 parameter ( ioh_kpp = 44 )
1313 parameter ( ic2o3_kpp = 45 )
1315 parameter ( ino_kpp = 46 )
1317 parameter ( ino2_kpp = 47 )
1319 parameter ( ino3_kpp = 48 )
1321 ! indexes declaration for fixed species
1324 parameter ( ich4_kpp = 1 )
1326 parameter ( ih2o_kpp = 2 )
1328 parameter ( ih2_kpp = 3 )
1330 parameter ( io2_kpp = 4 )
1332 parameter ( in2_kpp = 5 )
1337 if (imap .le. 0) goto 1000
1338 if (imap .ge. 1) goto 2000
1342 ! map cbox values into yyvarkpp and yyfixkpp
1345 yy(ih2so4_kpp) = cbox(ih2so4_z)
1346 yy(ihcooh_kpp) = cbox(ihcooh_z)
1347 yy(ircooh_kpp) = cbox(ircooh_z)
1348 yy(io1d_kpp) = cbox(io1d_z)
1349 yy(iso2_kpp) = cbox(iso2_z)
1350 yy(ic2h5oh_kpp) = cbox(ic2h5oh_z)
1351 yy(ih2o2_kpp) = cbox(ih2o2_z)
1352 yy(ic2h6_kpp) = cbox(ic2h6_z)
1353 yy(ipan_kpp) = cbox(ipan_z)
1354 yy(itol_kpp) = cbox(itol_z)
1355 yy(in2o5_kpp) = cbox(in2o5_z)
1356 yy(ixyl_kpp) = cbox(ixyl_z)
1357 yy(ipar_kpp) = cbox(ipar_z)
1358 yy(icro_kpp) = cbox(icro_z)
1359 yy(ihno4_kpp) = cbox(ihno4_z)
1360 yy(ito2_kpp) = cbox(ito2_z)
1361 yy(ich3ooh_kpp) = cbox(ich3ooh_z)
1362 yy(iethooh_kpp) = cbox(iethooh_z)
1363 yy(ihono_kpp) = cbox(ihono_z)
1364 yy(ieth_kpp) = cbox(ieth_z)
1365 yy(ich3oh_kpp) = cbox(ich3oh_z)
1366 yy(io3p_kpp) = cbox(io3p_z)
1367 yy(icres_kpp) = cbox(icres_z)
1368 yy(ico_kpp) = cbox(ico_z)
1369 yy(ixpar_kpp) = cbox(ixpar_z)
1370 yy(ihno3_kpp) = cbox(ihno3_z)
1371 yy(iopen_kpp) = cbox(iopen_z)
1372 yy(irooh_kpp) = cbox(irooh_z)
1373 yy(iaone_kpp) = cbox(iaone_z)
1374 yy(iolet_kpp) = cbox(iolet_z)
1375 yy(ihcho_kpp) = cbox(ihcho_z)
1376 yy(ixo2_kpp) = cbox(ixo2_z)
1377 yy(iolei_kpp) = cbox(iolei_z)
1378 yy(imgly_kpp) = cbox(imgly_z)
1379 yy(iethp_kpp) = cbox(iethp_z)
1380 yy(inap_kpp) = cbox(inap_z)
1381 yy(iald2_kpp) = cbox(iald2_z)
1382 yy(ich3o2_kpp) = cbox(ich3o2_z)
1383 yy(iano2_kpp) = cbox(iano2_z)
1384 yy(iro2_kpp) = cbox(iro2_z)
1385 yy(ionit_kpp) = cbox(ionit_z)
1386 yy(iho2_kpp) = cbox(iho2_z)
1387 yy(io3_kpp) = cbox(io3_z)
1388 yy(ioh_kpp) = cbox(ioh_z)
1389 yy(ic2o3_kpp) = cbox(ic2o3_z)
1390 yy(ino_kpp) = cbox(ino_z)
1391 yy(ino2_kpp) = cbox(ino2_z)
1392 yy(ino3_kpp) = cbox(ino3_z)
1394 yyfixed(ich4_kpp) = cbox(ich4_z)
1395 yyfixed(ih2o_kpp) = cbox(ih2o_z)
1396 yyfixed(ih2_kpp) = cbox(ih2_z)
1397 yyfixed(io2_kpp) = cbox(io2_z)
1398 yyfixed(in2_kpp) = cbox(in2_z)
1401 ! map yyvarkpp values into cbox
1404 cbox(ih2so4_z) = yy(ih2so4_kpp)
1405 cbox(ihcooh_z) = yy(ihcooh_kpp)
1406 cbox(ircooh_z) = yy(ircooh_kpp)
1407 cbox(io1d_z) = yy(io1d_kpp)
1408 cbox(iso2_z) = yy(iso2_kpp)
1409 cbox(ic2h5oh_z) = yy(ic2h5oh_kpp)
1410 cbox(ih2o2_z) = yy(ih2o2_kpp)
1411 cbox(ic2h6_z) = yy(ic2h6_kpp)
1412 cbox(ipan_z) = yy(ipan_kpp)
1413 cbox(itol_z) = yy(itol_kpp)
1414 cbox(in2o5_z) = yy(in2o5_kpp)
1415 cbox(ixyl_z) = yy(ixyl_kpp)
1416 cbox(ipar_z) = yy(ipar_kpp)
1417 cbox(icro_z) = yy(icro_kpp)
1418 cbox(ihno4_z) = yy(ihno4_kpp)
1419 cbox(ito2_z) = yy(ito2_kpp)
1420 cbox(ich3ooh_z) = yy(ich3ooh_kpp)
1421 cbox(iethooh_z) = yy(iethooh_kpp)
1422 cbox(ihono_z) = yy(ihono_kpp)
1423 cbox(ieth_z) = yy(ieth_kpp)
1424 cbox(ich3oh_z) = yy(ich3oh_kpp)
1425 cbox(io3p_z) = yy(io3p_kpp)
1426 cbox(icres_z) = yy(icres_kpp)
1427 cbox(ico_z) = yy(ico_kpp)
1428 cbox(ixpar_z) = yy(ixpar_kpp)
1429 cbox(ihno3_z) = yy(ihno3_kpp)
1430 cbox(iopen_z) = yy(iopen_kpp)
1431 cbox(irooh_z) = yy(irooh_kpp)
1432 cbox(iaone_z) = yy(iaone_kpp)
1433 cbox(iolet_z) = yy(iolet_kpp)
1434 cbox(ihcho_z) = yy(ihcho_kpp)
1435 cbox(ixo2_z) = yy(ixo2_kpp)
1436 cbox(iolei_z) = yy(iolei_kpp)
1437 cbox(imgly_z) = yy(imgly_kpp)
1438 cbox(iethp_z) = yy(iethp_kpp)
1439 cbox(inap_z) = yy(inap_kpp)
1440 cbox(iald2_z) = yy(iald2_kpp)
1441 cbox(ich3o2_z) = yy(ich3o2_kpp)
1442 cbox(iano2_z) = yy(iano2_kpp)
1443 cbox(iro2_z) = yy(iro2_kpp)
1444 cbox(ionit_z) = yy(ionit_kpp)
1445 cbox(iho2_z) = yy(iho2_kpp)
1446 cbox(io3_z) = yy(io3_kpp)
1447 cbox(ioh_z) = yy(ioh_kpp)
1448 cbox(ic2o3_z) = yy(ic2o3_kpp)
1449 cbox(ino_z) = yy(ino_kpp)
1450 cbox(ino2_z) = yy(ino2_kpp)
1451 cbox(ino3_z) = yy(ino3_kpp)
1454 end subroutine cbmz_v02r02_mapconcs
1457 !-----------------------------------------------------------------------------
1458 subroutine cbmz_v02r02_maprates( &
1465 ! maps reaction rate constants (host code array --> kpp rconst array)
1466 ! for mechanism-version-regime = cbmz_v02r02
1468 use module_data_cbmz
1472 ! all are host-code reaction-rate-constant arrays [input]
1478 real rconst(nreact_kppmax)
1483 do i = 1, nreact_kppmax
1488 rconst(1) = (rk_m1(1))
1489 rconst(2) = (rk_m1(2))
1490 rconst(3) = (rk_m1(3))
1491 rconst(4) = (rk_m1(4))
1492 rconst(5) = (rk_m1(5))
1493 rconst(6) = (rk_m1(6))
1494 rconst(7) = (rk_m1(7))
1495 rconst(8) = (rk_m1(8))
1496 rconst(9) = (rk_m1(9))
1497 rconst(10) = (rk_m1(10))
1498 rconst(11) = (rk_m1(11))
1499 rconst(12) = (rk_m1(12))
1500 rconst(13) = (rk_m1(13))
1501 rconst(14) = (rk_m1(14))
1502 rconst(15) = (rk_m1(15))
1503 rconst(16) = (rk_m1(16))
1504 rconst(17) = (rk_m1(17))
1505 rconst(18) = (rk_m1(18))
1506 rconst(19) = (rk_m1(19))
1507 rconst(20) = (rk_m1(20))
1508 rconst(21) = (rk_m1(21))
1509 rconst(22) = (rk_m1(22))
1510 rconst(23) = (rk_m1(23))
1511 rconst(24) = (rk_m1(24))
1512 rconst(25) = (rk_m1(25))
1513 rconst(26) = (rk_m1(26))
1514 rconst(27) = (rk_m1(27))
1515 rconst(28) = (rk_m1(28))
1516 rconst(29) = (rk_m1(29))
1517 rconst(30) = (rk_m1(30))
1518 rconst(31) = (rk_m1(31))
1519 rconst(32) = (rk_m1(32))
1520 rconst(33) = (rk_m1(33))
1521 rconst(34) = (rk_m1(34))
1522 rconst(35) = (rk_m1(35))
1523 rconst(36) = (rk_m1(36))
1524 rconst(37) = (rk_m1(37))
1525 rconst(38) = (rk_m1(38))
1526 rconst(39) = (rk_m1(39))
1527 rconst(40) = (rk_m1(40))
1528 rconst(41) = (rk_m1(41))
1529 rconst(42) = (rk_m1(42))
1530 rconst(43) = (rk_m1(43))
1531 rconst(44) = (rk_m1(44))
1532 rconst(45) = (rk_m1(45))
1533 rconst(46) = (rk_m1(46))
1534 rconst(47) = (rk_m1(47))
1535 rconst(48) = (rk_m1(48))
1536 rconst(49) = (rk_m1(49))
1537 rconst(50) = (rk_m1(50))
1538 rconst(51) = (rk_m1(51))
1539 rconst(52) = (rk_m1(52))
1540 rconst(53) = (rk_m1(53))
1541 rconst(54) = (rk_m1(54))
1542 rconst(55) = (rk_m1(55))
1543 rconst(56) = (rk_m1(56))
1544 rconst(57) = (rk_m1(57))
1545 rconst(58) = (rk_m1(58))
1546 rconst(59) = (rk_m1(59))
1547 rconst(60) = (rk_m1(60))
1548 rconst(61) = (rk_m1(61))
1549 rconst(62) = (rk_m1(62))
1550 rconst(63) = (rk_m1(63))
1551 rconst(64) = (rk_m1(64))
1552 rconst(65) = (rk_m1(65))
1553 rconst(66) = (rk_m2(2))
1554 rconst(67) = (rk_m2(3))
1555 rconst(68) = (rk_m2(4))
1556 rconst(69) = (rk_m2(31))
1557 rconst(70) = (rk_m2(32))
1558 rconst(71) = (rk_m2(34))
1559 rconst(72) = (rk_m2(39))
1560 rconst(73) = (rk_m2(44))
1561 rconst(74) = (rk_m2(49))
1562 rconst(75) = (rk_m2(1))
1563 rconst(76) = (rk_m2(5))
1564 rconst(77) = (rk_m2(6))
1565 rconst(78) = (rk_m2(7))
1566 rconst(79) = (rk_m2(8))
1567 rconst(80) = (rk_m2(9))
1568 rconst(81) = (rk_m2(10))
1569 rconst(82) = (rk_m2(11))
1570 rconst(83) = (rk_m2(12))
1571 rconst(84) = (rk_m2(13))
1572 rconst(85) = (rk_m2(14))
1573 rconst(86) = (rk_m2(15))
1574 rconst(87) = (rk_m2(16))
1575 rconst(88) = (rk_m2(17))
1576 rconst(89) = (rk_m2(18))
1577 rconst(90) = (rk_m2(19))
1578 rconst(91) = (rk_m2(20))
1579 rconst(92) = (rk_m2(21))
1580 rconst(93) = (rk_m2(22))
1581 rconst(94) = (rk_m2(23))
1582 rconst(95) = (rk_m2(24))
1583 rconst(96) = (rk_m2(25))
1584 rconst(97) = (rk_m2(26))
1585 rconst(98) = (rk_m2(27))
1586 rconst(99) = (rk_m2(28))
1587 rconst(100) = (rk_m2(29))
1588 rconst(101) = (rk_m2(30))
1589 rconst(102) = (rk_m2(33))
1590 rconst(103) = (rk_m2(35))
1591 rconst(104) = (rk_m2(36))
1592 rconst(105) = (rk_m2(37))
1593 rconst(106) = (rk_m2(38))
1594 rconst(107) = (rk_m2(40))
1595 rconst(108) = (rk_m2(41))
1596 rconst(109) = (rk_m2(42))
1597 rconst(110) = (rk_m2(43))
1598 rconst(111) = (rk_m2(45))
1599 rconst(112) = (rk_m2(46))
1600 rconst(113) = (rk_m2(47))
1601 rconst(114) = (rk_m2(48))
1602 rconst(115) = (rk_m2(50))
1603 rconst(116) = (rk_m2(51))
1604 rconst(117) = (rk_m2(52))
1605 rconst(118) = (rk_m2(53))
1607 end subroutine cbmz_v02r02_maprates
1610 !-----------------------------------------------------------------------------
1611 subroutine cbmz_v02r02_dydt( nvardum, tdum, v, a_var, f, rconst )
1613 ! computes rates of change for mechanism-version-regime = cbmz_v02r02
1615 use module_data_cbmz
1619 ! nvardum = number of variable species [input]
1621 ! tdum = time [input]
1623 ! v = concentrations of variable species [input]
1624 real v(nvar_r02_kpp)
1625 ! a_var = dydt for each species [output]
1626 real a_var(nvar_r02_kpp)
1627 ! f = concentrations of fixed species [input]
1628 real f(nfixed_kppmax)
1629 ! rconst = reaction rate constants [input]
1630 real rconst(nreact_r02_kpp)
1633 ! a = rate for each reaction
1634 real a(nreact_r02_kpp)
1636 ! computation of equation rates
1637 a(1) = rconst(1)*v(47)
1638 a(2) = rconst(2)*v(48)
1639 a(3) = rconst(3)*v(19)
1640 a(4) = rconst(4)*v(26)
1641 a(5) = rconst(5)*v(15)
1642 a(6) = rconst(6)*v(11)
1643 a(7) = rconst(7)*v(43)
1644 a(8) = rconst(8)*v(43)
1645 a(9) = rconst(9)*v(7)
1646 a(10) = rconst(10)*v(4)*f(4)
1647 a(11) = rconst(11)*v(4)*f(5)
1648 a(12) = rconst(12)*v(4)*f(2)
1649 a(13) = rconst(13)*v(22)*f(4)
1650 a(14) = rconst(14)*v(22)*v(43)
1651 a(15) = rconst(15)*v(22)*v(47)
1652 a(16) = rconst(16)*v(22)*v(47)
1653 a(17) = rconst(17)*v(22)*v(46)
1654 a(18) = rconst(18)*v(43)*v(46)
1655 a(19) = rconst(19)*v(43)*v(47)
1656 a(20) = rconst(20)*v(43)*v(44)
1657 a(21) = rconst(21)*v(42)*v(43)
1658 a(22) = rconst(22)*v(44)*f(3)
1659 a(23) = rconst(23)*v(44)*v(46)
1660 a(24) = rconst(24)*v(44)*v(47)
1661 a(25) = rconst(25)*v(44)*v(48)
1662 a(26) = rconst(26)*v(19)*v(44)
1663 a(27) = rconst(27)*v(26)*v(44)
1664 a(28) = rconst(28)*v(15)*v(44)
1665 a(29) = rconst(29)*v(42)*v(44)
1666 a(30) = rconst(30)*v(7)*v(44)
1667 a(31) = rconst(31)*v(42)*v(42)
1668 a(32) = rconst(32)*v(42)*v(42)*f(2)
1669 a(33) = rconst(33)*v(42)*v(46)
1670 a(34) = rconst(34)*v(42)*v(47)
1671 a(35) = rconst(35)*v(42)*v(47)
1672 a(36) = rconst(36)*v(15)
1673 a(37) = rconst(37)*v(46)*v(48)
1674 a(38) = rconst(38)*v(47)*v(48)
1675 a(39) = rconst(39)*v(47)*v(48)
1676 a(40) = rconst(40)*v(48)*v(48)
1677 a(41) = rconst(41)*v(42)*v(48)
1678 a(42) = rconst(42)*v(11)*f(2)
1679 a(43) = rconst(43)*v(11)
1680 a(44) = rconst(44)*v(24)*v(44)
1681 a(45) = rconst(45)*v(5)*v(44)
1682 a(46) = rconst(46)*v(44)*f(1)
1683 a(47) = rconst(47)*v(8)*v(44)
1684 a(48) = rconst(48)*v(21)*v(44)
1685 a(49) = rconst(49)*v(31)
1686 a(50) = rconst(50)*v(31)
1687 a(51) = rconst(51)*v(31)*v(44)
1688 a(52) = rconst(52)*v(31)*v(48)
1689 a(53) = rconst(53)*v(17)
1690 a(54) = rconst(54)*v(18)
1691 a(55) = rconst(55)*v(17)*v(44)
1692 a(56) = rconst(56)*v(18)*v(44)
1693 a(57) = rconst(57)*v(38)*v(46)
1694 a(58) = rconst(58)*v(35)*v(46)
1695 a(59) = rconst(59)*v(38)*v(48)
1696 a(60) = rconst(60)*v(35)*v(48)
1697 a(61) = rconst(61)*v(38)*v(42)
1698 a(62) = rconst(62)*v(35)*v(42)
1699 a(63) = rconst(63)*v(38)
1700 a(64) = rconst(64)*v(35)
1701 a(65) = rconst(65)*v(6)*v(44)
1702 a(66) = rconst(66)*v(37)
1703 a(67) = rconst(67)*v(37)*v(44)
1704 a(68) = rconst(68)*v(37)*v(48)
1705 a(69) = rconst(69)*v(45)*v(47)
1706 a(70) = rconst(70)*v(9)
1707 a(71) = rconst(71)*v(45)*v(46)
1708 a(72) = rconst(72)*v(45)*v(48)
1709 a(73) = rconst(73)*v(42)*v(45)
1710 a(74) = rconst(74)*v(45)
1711 a(75) = rconst(75)*v(13)*v(44)
1712 a(76) = rconst(76)*v(29)
1713 a(77) = rconst(77)*v(29)*v(44)
1714 a(78) = rconst(78)*v(34)
1715 a(79) = rconst(79)*v(34)*v(44)
1716 a(80) = rconst(80)*v(34)*v(48)
1717 a(81) = rconst(81)*v(20)*v(43)
1718 a(82) = rconst(82)*v(20)*v(44)
1719 a(83) = rconst(83)*v(30)*v(43)
1720 a(84) = rconst(84)*v(33)*v(43)
1721 a(85) = rconst(85)*v(30)*v(44)
1722 a(86) = rconst(86)*v(33)*v(44)
1723 a(87) = rconst(87)*v(30)*v(48)
1724 a(88) = rconst(88)*v(33)*v(48)
1725 a(89) = rconst(89)*v(10)*v(44)
1726 a(90) = rconst(90)*v(12)*v(44)
1727 a(91) = rconst(91)*v(16)*v(46)
1728 a(92) = rconst(92)*v(23)*v(44)
1729 a(93) = rconst(93)*v(23)*v(48)
1730 a(94) = rconst(94)*v(14)*v(47)
1731 a(95) = rconst(95)*v(27)*v(44)
1732 a(96) = rconst(96)*v(27)
1733 a(97) = rconst(97)*v(27)*v(43)
1734 a(98) = rconst(98)*v(28)
1735 a(99) = rconst(99)*v(28)*v(44)
1736 a(100) = rconst(100)*v(41)*v(44)
1737 a(101) = rconst(101)*v(41)
1738 a(102) = rconst(102)*v(40)*v(46)
1739 a(103) = rconst(103)*v(39)*v(46)
1740 a(104) = rconst(104)*v(36)*v(46)
1741 a(105) = rconst(105)*v(32)*v(46)
1742 a(106) = rconst(106)*v(40)*v(48)
1743 a(107) = rconst(107)*v(39)*v(48)
1744 a(108) = rconst(108)*v(36)*v(48)
1745 a(109) = rconst(109)*v(32)*v(48)
1746 a(110) = rconst(110)*v(40)*v(42)
1747 a(111) = rconst(111)*v(39)*v(42)
1748 a(112) = rconst(112)*v(36)*v(42)
1749 a(113) = rconst(113)*v(32)*v(42)
1750 a(114) = rconst(114)*v(40)
1751 a(115) = rconst(115)*v(39)
1752 a(116) = rconst(116)*v(36)
1753 a(117) = rconst(117)*v(32)
1754 a(118) = rconst(118)*v(13)*v(25)
1756 ! aggregate function
1758 a_var(2) = 0.52*a(81)+0.22*a(83)
1759 a_var(3) = 0.4*a(73)+0.09*a(83)+0.16*a(84)
1760 a_var(4) = a(8)-a(10)-a(11)-a(12)
1763 a_var(7) = -a(9)-a(30)+a(31)+a(32)
1764 a_var(8) = -a(47)+0.2*a(64)
1765 a_var(9) = a(69)-a(70)
1767 a_var(11) = -a(6)+a(39)-a(42)-a(43)
1769 a_var(13) = -a(75)+1.1*a(90)-a(118)
1770 a_var(14) = 0.4*a(92)+a(93)-a(94)
1771 a_var(15) = -a(5)-a(28)+a(34)-a(36)
1772 a_var(16) = 0.8*a(89)+0.45*a(90)-a(91)
1773 a_var(17) = -a(53)-a(55)+a(61)
1774 a_var(18) = -a(54)-a(56)+a(62)
1775 a_var(19) = -a(3)+a(23)-a(26)+a(35)
1776 a_var(20) = -a(81)-a(82)
1777 a_var(21) = -a(48)+0.34*a(63)+0.03*a(83)+0.04*a(84)
1778 a_var(22) = a(1)+0.89*a(2)+a(7)+a(10)+a(11)-a(13)-a(14)-a(15) &
1780 a_var(23) = 0.12*a(89)+0.05*a(90)-a(92)-a(93)
1781 a_var(24) = -a(44)+a(49)+a(50)+a(51)+a(52)+a(66)+a(78)+a(80) &
1782 +0.24*a(81)+0.31*a(83)+0.3*a(84)+2*a(95)+a(96)+0.69 &
1784 a_var(25) = 1.06*a(83)+2.26*a(84)+a(85)+2.23*a(86)+1.98*a(98) &
1785 +0.42*a(99)+1.98*a(101)+1.68*a(102)+a(104)+1.98 &
1786 *a(106)+a(108)+1.25*a(114)+a(116)-a(118)
1787 a_var(26) = -a(4)+a(24)-a(27)+0.3*a(41)+2*a(42)+a(52)+a(68) &
1789 a_var(27) = 0.95*a(91)+0.3*a(92)-a(95)-a(96)-a(97)
1790 a_var(28) = -a(98)-a(99)+a(110)+a(111)
1791 a_var(29) = -a(76)-a(77)+0.07*a(84)+0.23*a(86)+0.74*a(98)+0.74 &
1792 *a(101)+0.62*a(102)+0.74*a(106)+0.57*a(114)+0.15 &
1794 a_var(30) = -a(83)-a(85)-a(87)
1795 a_var(31) = a(48)-a(49)-a(50)-a(51)-a(52)+a(53)+0.3*a(55)+a(57) &
1796 +a(59)+0.66*a(63)+a(81)+1.56*a(82)+0.57*a(83)+a(85) &
1797 +a(95)+0.7*a(97)+a(103)+0.5*a(104)+a(107)+0.5*a(108) &
1798 +0.7*a(115)+0.5*a(116)
1799 a_var(32) = a(79)+a(82)+a(85)+a(86)+0.08*a(89)+0.5*a(90)+0.6 &
1800 *a(92)+a(95)+0.03*a(97)+0.4*a(98)+0.4*a(101)+0.34 &
1801 *a(102)-a(105)+0.4*a(106)-a(109)-a(113)+0.24*a(114) &
1803 a_var(33) = -a(84)-a(86)-a(88)
1804 a_var(34) = -a(78)-a(79)-a(80)+0.04*a(83)+0.07*a(84)+0.8*a(90) &
1805 +0.2*a(97)+0.19*a(99)+0.15*a(115)
1806 a_var(35) = a(47)+0.5*a(56)-a(58)-a(60)-a(62)-a(64)+0.06*a(83) &
1807 +0.05*a(84)+0.1*a(98)+0.1*a(101)+0.08*a(102)+0.1 &
1809 a_var(36) = a(87)+a(88)+a(100)-a(104)-a(108)-a(112)-a(116)
1810 a_var(37) = a(54)+0.5*a(56)+a(58)+a(60)+0.8*a(64)+a(65)-a(66) &
1811 -a(67)-a(68)+0.22*a(82)+0.47*a(83)+1.03*a(84)+a(85) &
1812 +1.77*a(86)+0.03*a(97)+0.3*a(98)+0.04*a(99)+0.3 &
1813 *a(101)+0.25*a(102)+0.5*a(104)+0.3*a(106)+0.5*a(108) &
1814 +0.21*a(114)+0.5*a(116)
1815 a_var(38) = a(46)+0.7*a(55)-a(57)-a(59)-a(61)-a(63)+a(66)+a(71) &
1816 +a(72)+a(74)+a(76)+0.07*a(83)+0.1*a(84)
1817 a_var(39) = a(77)+0.11*a(84)-a(103)-a(107)-a(111)-a(115)
1818 a_var(40) = a(75)+0.03*a(83)+0.09*a(84)+0.77*a(99)-a(102)-a(106) &
1820 a_var(41) = 0.05*a(91)+a(94)-a(100)-a(101)+0.16*a(102)+0.5 &
1821 *a(104)+0.5*a(108)+a(112)+0.5*a(116)
1822 a_var(42) = a(5)+a(20)-a(21)+a(22)+a(25)-a(29)+a(30)-2*a(31)-2 &
1823 *a(32)-a(33)-a(34)-a(35)+a(36)-a(41)+a(44)+a(45) &
1824 +a(48)+2*a(49)+a(51)+a(52)+a(53)+a(54)+a(57)+a(58) &
1825 +a(59)+a(60)-a(61)-a(62)+0.32*a(63)+0.6*a(64)+a(65) &
1826 +a(66)-a(73)+a(78)+0.22*a(81)+a(82)+0.26*a(83)+0.22 &
1827 *a(84)+a(85)+a(86)+0.2*a(89)+0.55*a(90)+0.95*a(91) &
1828 +0.6*a(92)+2*a(95)+a(96)+0.76*a(97)+0.9*a(98)+0.9 &
1829 *a(101)+0.76*a(102)+0.5*a(104)+0.9*a(106)+0.5*a(108) &
1830 -a(110)-a(111)-a(112)-a(113)+0.54*a(114)
1831 a_var(43) = -a(7)-a(8)+a(13)-a(14)-a(18)-a(19)-a(20)-a(21)+0.4 &
1832 *a(73)-a(81)-a(83)-a(84)-a(97)
1833 a_var(44) = a(3)+a(4)+2*a(9)+2*a(12)-a(20)+a(21)-a(22)-a(23) &
1834 -a(24)-a(25)-a(26)-a(27)-a(28)-a(29)-a(30)+a(33)+0.7 &
1835 *a(41)-a(44)-a(45)-a(46)-a(47)-a(48)-a(51)+a(53) &
1836 +a(54)-0.7*a(55)-0.5*a(56)-a(65)-a(67)-a(75)-a(77) &
1837 -a(79)+0.12*a(81)-a(82)+0.33*a(83)+0.6*a(84)-a(85) &
1838 -a(86)-a(89)-a(90)-a(92)-a(95)+0.08*a(97)+a(98)-0.77 &
1840 a_var(45) = a(67)+a(68)-a(69)+a(70)-a(71)-a(72)-a(73)-a(74) &
1841 +a(76)+a(78)+a(79)+a(80)+0.13*a(83)+0.19*a(84)+a(95) &
1842 +a(96)+0.62*a(97)+a(103)+a(107)+0.7*a(115)
1843 a_var(46) = a(1)+0.11*a(2)+a(3)+a(15)-a(17)-a(18)-a(23)-a(33) &
1844 -a(37)+a(38)-a(57)-a(58)-a(71)-a(91)-a(102)-a(103) &
1846 a_var(47) = -a(1)+0.89*a(2)+a(4)+a(5)+a(6)-a(15)-a(16)+a(17) &
1847 +a(18)-a(19)-a(24)+a(25)+a(26)+a(28)+a(33)-a(34) &
1848 -a(35)+a(36)+2*a(37)-a(39)+2*a(40)+0.7*a(41)+a(43) &
1849 +a(57)+a(58)+a(59)+a(60)-a(69)+a(70)+a(71)+a(72)+0.95 &
1850 *a(91)-a(94)+a(101)+0.84*a(102)+a(103)+1.5*a(104) &
1851 +a(105)+a(106)+a(107)+1.5*a(108)+a(109)+0.5*a(116)
1852 a_var(48) = -a(2)+a(6)+a(16)+a(19)-a(25)+a(27)-a(37)-a(38)-a(39) &
1853 -2*a(40)-a(41)+a(43)-a(52)-a(59)-a(60)-a(68)-a(72) &
1854 -a(80)-a(87)-a(88)-a(93)-a(106)-a(107)-a(108)-a(109)
1856 end subroutine cbmz_v02r02_dydt
1859 !-----------------------------------------------------------------------------
1860 subroutine cbmz_v02r02_jacob( nvardum, tdum, v, jvs, f, rconst )
1862 ! computes jacobian for mechanism-version-regime = cbmz_v02r02
1864 use module_data_cbmz
1868 ! nvardum = number of variable species [input]
1870 ! tdum = time [input]
1872 ! v = concentrations of variable species [input]
1873 real v(nvar_r02_kpp)
1874 ! jvs = non-zero jacobian elements [output]
1875 real jvs(lu_nonzero_v_r02_kpp)
1876 ! f = concentrations of fixed species [input]
1877 real f(nfixed_kppmax)
1878 ! rconst = reaction rate constants [input]
1879 real rconst(nreact_r02_kpp)
1882 ! b(i,j) = d[reaction_rate(i)] / d[species_conc(j)]
1883 real b(nreact_r02_kpp,nvar_r02_kpp)
1885 ! computation of b(i,j) = da(i)/dv(j)
1895 b(10,4) = rconst(10)*f(4)
1896 b(11,4) = rconst(11)*f(5)
1897 b(12,4) = rconst(12)*f(2)
1898 b(13,22) = rconst(13)*f(4)
1899 b(14,22) = rconst(14)*v(43)
1900 b(14,43) = rconst(14)*v(22)
1901 b(15,22) = rconst(15)*v(47)
1902 b(15,47) = rconst(15)*v(22)
1903 b(16,22) = rconst(16)*v(47)
1904 b(16,47) = rconst(16)*v(22)
1905 b(17,22) = rconst(17)*v(46)
1906 b(17,46) = rconst(17)*v(22)
1907 b(18,43) = rconst(18)*v(46)
1908 b(18,46) = rconst(18)*v(43)
1909 b(19,43) = rconst(19)*v(47)
1910 b(19,47) = rconst(19)*v(43)
1911 b(20,43) = rconst(20)*v(44)
1912 b(20,44) = rconst(20)*v(43)
1913 b(21,42) = rconst(21)*v(43)
1914 b(21,43) = rconst(21)*v(42)
1915 b(22,44) = rconst(22)*f(3)
1916 b(23,44) = rconst(23)*v(46)
1917 b(23,46) = rconst(23)*v(44)
1918 b(24,44) = rconst(24)*v(47)
1919 b(24,47) = rconst(24)*v(44)
1920 b(25,44) = rconst(25)*v(48)
1921 b(25,48) = rconst(25)*v(44)
1922 b(26,19) = rconst(26)*v(44)
1923 b(26,44) = rconst(26)*v(19)
1924 b(27,26) = rconst(27)*v(44)
1925 b(27,44) = rconst(27)*v(26)
1926 b(28,15) = rconst(28)*v(44)
1927 b(28,44) = rconst(28)*v(15)
1928 b(29,42) = rconst(29)*v(44)
1929 b(29,44) = rconst(29)*v(42)
1930 b(30,7) = rconst(30)*v(44)
1931 b(30,44) = rconst(30)*v(7)
1932 b(31,42) = rconst(31)*2*v(42)
1933 b(32,42) = rconst(32)*2*v(42)*f(2)
1934 b(33,42) = rconst(33)*v(46)
1935 b(33,46) = rconst(33)*v(42)
1936 b(34,42) = rconst(34)*v(47)
1937 b(34,47) = rconst(34)*v(42)
1938 b(35,42) = rconst(35)*v(47)
1939 b(35,47) = rconst(35)*v(42)
1940 b(36,15) = rconst(36)
1941 b(37,46) = rconst(37)*v(48)
1942 b(37,48) = rconst(37)*v(46)
1943 b(38,47) = rconst(38)*v(48)
1944 b(38,48) = rconst(38)*v(47)
1945 b(39,47) = rconst(39)*v(48)
1946 b(39,48) = rconst(39)*v(47)
1947 b(40,48) = rconst(40)*2*v(48)
1948 b(41,42) = rconst(41)*v(48)
1949 b(41,48) = rconst(41)*v(42)
1950 b(42,11) = rconst(42)*f(2)
1951 b(43,11) = rconst(43)
1952 b(44,24) = rconst(44)*v(44)
1953 b(44,44) = rconst(44)*v(24)
1954 b(45,5) = rconst(45)*v(44)
1955 b(45,44) = rconst(45)*v(5)
1956 b(46,44) = rconst(46)*f(1)
1957 b(47,8) = rconst(47)*v(44)
1958 b(47,44) = rconst(47)*v(8)
1959 b(48,21) = rconst(48)*v(44)
1960 b(48,44) = rconst(48)*v(21)
1961 b(49,31) = rconst(49)
1962 b(50,31) = rconst(50)
1963 b(51,31) = rconst(51)*v(44)
1964 b(51,44) = rconst(51)*v(31)
1965 b(52,31) = rconst(52)*v(48)
1966 b(52,48) = rconst(52)*v(31)
1967 b(53,17) = rconst(53)
1968 b(54,18) = rconst(54)
1969 b(55,17) = rconst(55)*v(44)
1970 b(55,44) = rconst(55)*v(17)
1971 b(56,18) = rconst(56)*v(44)
1972 b(56,44) = rconst(56)*v(18)
1973 b(57,38) = rconst(57)*v(46)
1974 b(57,46) = rconst(57)*v(38)
1975 b(58,35) = rconst(58)*v(46)
1976 b(58,46) = rconst(58)*v(35)
1977 b(59,38) = rconst(59)*v(48)
1978 b(59,48) = rconst(59)*v(38)
1979 b(60,35) = rconst(60)*v(48)
1980 b(60,48) = rconst(60)*v(35)
1981 b(61,38) = rconst(61)*v(42)
1982 b(61,42) = rconst(61)*v(38)
1983 b(62,35) = rconst(62)*v(42)
1984 b(62,42) = rconst(62)*v(35)
1985 b(63,38) = rconst(63)
1986 b(64,35) = rconst(64)
1987 b(65,6) = rconst(65)*v(44)
1988 b(65,44) = rconst(65)*v(6)
1989 b(66,37) = rconst(66)
1990 b(67,37) = rconst(67)*v(44)
1991 b(67,44) = rconst(67)*v(37)
1992 b(68,37) = rconst(68)*v(48)
1993 b(68,48) = rconst(68)*v(37)
1994 b(69,45) = rconst(69)*v(47)
1995 b(69,47) = rconst(69)*v(45)
1996 b(70,9) = rconst(70)
1997 b(71,45) = rconst(71)*v(46)
1998 b(71,46) = rconst(71)*v(45)
1999 b(72,45) = rconst(72)*v(48)
2000 b(72,48) = rconst(72)*v(45)
2001 b(73,42) = rconst(73)*v(45)
2002 b(73,45) = rconst(73)*v(42)
2003 b(74,45) = rconst(74)
2004 b(75,13) = rconst(75)*v(44)
2005 b(75,44) = rconst(75)*v(13)
2006 b(76,29) = rconst(76)
2007 b(77,29) = rconst(77)*v(44)
2008 b(77,44) = rconst(77)*v(29)
2009 b(78,34) = rconst(78)
2010 b(79,34) = rconst(79)*v(44)
2011 b(79,44) = rconst(79)*v(34)
2012 b(80,34) = rconst(80)*v(48)
2013 b(80,48) = rconst(80)*v(34)
2014 b(81,20) = rconst(81)*v(43)
2015 b(81,43) = rconst(81)*v(20)
2016 b(82,20) = rconst(82)*v(44)
2017 b(82,44) = rconst(82)*v(20)
2018 b(83,30) = rconst(83)*v(43)
2019 b(83,43) = rconst(83)*v(30)
2020 b(84,33) = rconst(84)*v(43)
2021 b(84,43) = rconst(84)*v(33)
2022 b(85,30) = rconst(85)*v(44)
2023 b(85,44) = rconst(85)*v(30)
2024 b(86,33) = rconst(86)*v(44)
2025 b(86,44) = rconst(86)*v(33)
2026 b(87,30) = rconst(87)*v(48)
2027 b(87,48) = rconst(87)*v(30)
2028 b(88,33) = rconst(88)*v(48)
2029 b(88,48) = rconst(88)*v(33)
2030 b(89,10) = rconst(89)*v(44)
2031 b(89,44) = rconst(89)*v(10)
2032 b(90,12) = rconst(90)*v(44)
2033 b(90,44) = rconst(90)*v(12)
2034 b(91,16) = rconst(91)*v(46)
2035 b(91,46) = rconst(91)*v(16)
2036 b(92,23) = rconst(92)*v(44)
2037 b(92,44) = rconst(92)*v(23)
2038 b(93,23) = rconst(93)*v(48)
2039 b(93,48) = rconst(93)*v(23)
2040 b(94,14) = rconst(94)*v(47)
2041 b(94,47) = rconst(94)*v(14)
2042 b(95,27) = rconst(95)*v(44)
2043 b(95,44) = rconst(95)*v(27)
2044 b(96,27) = rconst(96)
2045 b(97,27) = rconst(97)*v(43)
2046 b(97,43) = rconst(97)*v(27)
2047 b(98,28) = rconst(98)
2048 b(99,28) = rconst(99)*v(44)
2049 b(99,44) = rconst(99)*v(28)
2050 b(100,41) = rconst(100)*v(44)
2051 b(100,44) = rconst(100)*v(41)
2052 b(101,41) = rconst(101)
2053 b(102,40) = rconst(102)*v(46)
2054 b(102,46) = rconst(102)*v(40)
2055 b(103,39) = rconst(103)*v(46)
2056 b(103,46) = rconst(103)*v(39)
2057 b(104,36) = rconst(104)*v(46)
2058 b(104,46) = rconst(104)*v(36)
2059 b(105,32) = rconst(105)*v(46)
2060 b(105,46) = rconst(105)*v(32)
2061 b(106,40) = rconst(106)*v(48)
2062 b(106,48) = rconst(106)*v(40)
2063 b(107,39) = rconst(107)*v(48)
2064 b(107,48) = rconst(107)*v(39)
2065 b(108,36) = rconst(108)*v(48)
2066 b(108,48) = rconst(108)*v(36)
2067 b(109,32) = rconst(109)*v(48)
2068 b(109,48) = rconst(109)*v(32)
2069 b(110,40) = rconst(110)*v(42)
2070 b(110,42) = rconst(110)*v(40)
2071 b(111,39) = rconst(111)*v(42)
2072 b(111,42) = rconst(111)*v(39)
2073 b(112,36) = rconst(112)*v(42)
2074 b(112,42) = rconst(112)*v(36)
2075 b(113,32) = rconst(113)*v(42)
2076 b(113,42) = rconst(113)*v(32)
2077 b(114,40) = rconst(114)
2078 b(115,39) = rconst(115)
2079 b(116,36) = rconst(116)
2080 b(117,32) = rconst(117)
2081 b(118,13) = rconst(118)*v(25)
2082 b(118,25) = rconst(118)*v(13)
2084 ! construct the jacobian terms from b's
2089 jvs(5) = 0.52*b(81,20)
2090 jvs(6) = 0.22*b(83,30)
2091 jvs(7) = 0.52*b(81,43)+0.22*b(83,43)
2093 jvs(9) = 0.09*b(83,30)
2094 jvs(10) = 0.16*b(84,33)
2095 jvs(11) = 0.4*b(73,42)
2096 jvs(12) = 0.09*b(83,43)+0.16*b(84,43)
2097 jvs(13) = 0.4*b(73,45)
2098 jvs(14) = -b(10,4)-b(11,4)-b(12,4)
2104 jvs(20) = -b(9,7)-b(30,7)
2105 jvs(21) = b(31,42)+b(32,42)
2108 jvs(24) = 0.2*b(64,35)
2115 jvs(31) = -b(6,11)-b(42,11)-b(43,11)
2120 jvs(36) = 1.1*b(90,12)
2121 jvs(37) = -b(75,13)-b(118,13)
2122 jvs(38) = -b(118,25)
2123 jvs(39) = -b(75,44)+1.1*b(90,44)
2125 jvs(41) = 0.4*b(92,23)+b(93,23)
2126 jvs(42) = 0.4*b(92,44)
2129 jvs(45) = -b(5,15)-b(28,15)-b(36,15)
2133 jvs(49) = 0.8*b(89,10)
2134 jvs(50) = 0.45*b(90,12)
2136 jvs(52) = 0.8*b(89,44)+0.45*b(90,44)
2138 jvs(54) = -b(53,17)-b(55,17)
2142 jvs(58) = -b(54,18)-b(56,18)
2146 jvs(62) = -b(3,19)-b(26,19)
2148 jvs(64) = b(23,44)-b(26,44)
2151 jvs(67) = -b(81,20)-b(82,20)
2155 jvs(71) = 0.03*b(83,30)
2156 jvs(72) = 0.04*b(84,33)
2157 jvs(73) = 0.34*b(63,38)
2158 jvs(74) = 0.03*b(83,43)+0.04*b(84,43)
2160 jvs(76) = b(10,4)+b(11,4)
2161 jvs(77) = -b(13,22)-b(14,22)-b(15,22)-b(16,22)-b(17,22)
2162 jvs(78) = b(7,43)-b(14,43)
2164 jvs(80) = b(1,47)-b(15,47)-b(16,47)
2165 jvs(81) = 0.89*b(2,48)
2166 jvs(82) = 0.12*b(89,10)
2167 jvs(83) = 0.05*b(90,12)
2168 jvs(84) = -b(92,23)-b(93,23)
2169 jvs(85) = 0.12*b(89,44)+0.05*b(90,44)-b(92,44)
2171 jvs(87) = 0.24*b(81,20)
2173 jvs(89) = 2*b(95,27)+b(96,27)+0.69*b(97,27)
2174 jvs(90) = 0.31*b(83,30)
2175 jvs(91) = b(49,31)+b(50,31)+b(51,31)+b(52,31)
2176 jvs(92) = 0.3*b(84,33)
2177 jvs(93) = b(78,34)+b(80,34)
2179 jvs(95) = 0.24*b(81,43)+0.31*b(83,43)+0.3*b(84,43)+0.69*b(97,43)
2180 jvs(96) = -b(44,44)+b(51,44)+2*b(95,44)
2181 jvs(97) = b(52,48)+b(80,48)
2182 jvs(98) = -b(118,13)
2183 jvs(99) = -b(118,25)
2184 jvs(100) = 1.98*b(98,28)+0.42*b(99,28)
2185 jvs(101) = 1.06*b(83,30)+b(85,30)
2186 jvs(102) = 2.26*b(84,33)+2.23*b(86,33)
2187 jvs(103) = b(104,36)+b(108,36)+b(116,36)
2188 jvs(104) = 1.68*b(102,40)+1.98*b(106,40)+1.25*b(114,40)
2189 jvs(105) = 1.98*b(101,41)
2190 jvs(106) = 1.06*b(83,43)+2.26*b(84,43)
2191 jvs(107) = b(85,44)+2.23*b(86,44)+0.42*b(99,44)
2192 jvs(108) = 1.68*b(102,46)+b(104,46)
2193 jvs(109) = 1.98*b(106,48)+b(108,48)
2194 jvs(110) = 2*b(42,11)
2196 jvs(112) = -b(4,26)-b(27,26)
2200 jvs(116) = 0.3*b(41,42)
2201 jvs(117) = b(24,44)-b(27,44)
2203 jvs(119) = 0.3*b(41,48)+b(52,48)+b(68,48)+b(80,48)+b(93,48)
2204 jvs(120) = 0.95*b(91,16)
2205 jvs(121) = 0.3*b(92,23)
2206 jvs(122) = -b(95,27)-b(96,27)-b(97,27)
2207 jvs(123) = -b(97,43)
2208 jvs(124) = 0.3*b(92,44)-b(95,44)
2209 jvs(125) = 0.95*b(91,46)
2211 jvs(127) = -b(98,28)-b(99,28)
2212 jvs(128) = b(111,39)
2213 jvs(129) = b(110,40)
2214 jvs(130) = b(110,42)+b(111,42)
2215 jvs(131) = -b(99,44)
2216 jvs(132) = 0.74*b(98,28)
2217 jvs(133) = -b(76,29)-b(77,29)
2218 jvs(134) = 0.07*b(84,33)+0.23*b(86,33)
2219 jvs(135) = 0.15*b(115,39)
2220 jvs(136) = 0.62*b(102,40)+0.74*b(106,40)+0.57*b(114,40)
2221 jvs(137) = 0.74*b(101,41)
2223 jvs(139) = 0.07*b(84,43)
2224 jvs(140) = -b(77,44)+0.23*b(86,44)
2225 jvs(141) = 0.62*b(102,46)
2226 jvs(142) = 0.74*b(106,48)
2227 jvs(143) = -b(83,30)-b(85,30)-b(87,30)
2228 jvs(144) = -b(83,43)
2229 jvs(145) = -b(85,44)
2230 jvs(146) = -b(87,48)
2231 jvs(147) = b(53,17)+0.3*b(55,17)
2232 jvs(148) = b(81,20)+1.56*b(82,20)
2234 jvs(150) = b(95,27)+0.7*b(97,27)
2235 jvs(151) = 0.57*b(83,30)+b(85,30)
2236 jvs(152) = -b(49,31)-b(50,31)-b(51,31)-b(52,31)
2238 jvs(154) = 0.5*b(104,36)+0.5*b(108,36)+0.5*b(116,36)
2239 jvs(155) = b(57,38)+b(59,38)+0.66*b(63,38)
2240 jvs(156) = b(103,39)+b(107,39)+0.7*b(115,39)
2242 jvs(158) = b(81,43)+0.57*b(83,43)+0.7*b(97,43)
2243 jvs(159) = b(48,44)-b(51,44)+0.3*b(55,44)+1.56*b(82,44)+b(85,44) &
2245 jvs(160) = b(57,46)+b(103,46)+0.5*b(104,46)
2246 jvs(161) = -b(52,48)+b(59,48)+b(107,48)+0.5*b(108,48)
2247 jvs(162) = 0.08*b(89,10)
2248 jvs(163) = 0.5*b(90,12)
2250 jvs(165) = 0.6*b(92,23)
2251 jvs(166) = b(95,27)+0.03*b(97,27)
2252 jvs(167) = 0.4*b(98,28)
2254 jvs(169) = -b(105,32)-b(109,32)-b(113,32)-b(117,32)
2258 jvs(173) = 0.34*b(102,40)+0.4*b(106,40)+0.24*b(114,40)
2259 jvs(174) = 0.4*b(101,41)
2260 jvs(175) = -b(113,42)
2261 jvs(176) = 0.03*b(97,43)
2262 jvs(177) = b(79,44)+b(82,44)+b(85,44)+b(86,44)+0.08*b(89,44)+0.5 &
2263 *b(90,44)+0.6*b(92,44)+b(95,44)
2264 jvs(178) = 0.34*b(102,46)-b(105,46)
2265 jvs(179) = 0.4*b(106,48)-b(109,48)
2266 jvs(180) = -b(84,33)-b(86,33)-b(88,33)
2267 jvs(181) = -b(84,43)
2268 jvs(182) = -b(86,44)
2269 jvs(183) = -b(88,48)
2270 jvs(184) = 0.8*b(90,12)
2271 jvs(185) = 0.2*b(97,27)
2272 jvs(186) = 0.19*b(99,28)
2273 jvs(187) = 0.04*b(83,30)
2274 jvs(188) = 0.07*b(84,33)
2275 jvs(189) = -b(78,34)-b(79,34)-b(80,34)
2276 jvs(190) = 0.15*b(115,39)
2279 jvs(193) = 0.04*b(83,43)+0.07*b(84,43)+0.2*b(97,43)
2280 jvs(194) = -b(79,44)+0.8*b(90,44)+0.19*b(99,44)
2282 jvs(196) = -b(80,48)
2284 jvs(198) = 0.5*b(56,18)
2285 jvs(199) = 0.1*b(98,28)
2286 jvs(200) = 0.06*b(83,30)
2287 jvs(201) = 0.05*b(84,33)
2288 jvs(202) = -b(58,35)-b(60,35)-b(62,35)-b(64,35)
2290 jvs(204) = 0.08*b(102,40)+0.1*b(106,40)+0.06*b(114,40)
2291 jvs(205) = 0.1*b(101,41)
2292 jvs(206) = -b(62,42)
2293 jvs(207) = 0.06*b(83,43)+0.05*b(84,43)
2294 jvs(208) = b(47,44)+0.5*b(56,44)
2295 jvs(209) = -b(58,46)+0.08*b(102,46)
2296 jvs(210) = -b(60,48)+0.1*b(106,48)
2299 jvs(213) = -b(104,36)-b(108,36)-b(112,36)-b(116,36)
2300 jvs(214) = b(100,41)
2301 jvs(215) = -b(112,42)
2303 jvs(217) = b(100,44)
2304 jvs(218) = -b(104,46)
2305 jvs(219) = b(87,48)+b(88,48)-b(108,48)
2307 jvs(221) = b(54,18)+0.5*b(56,18)
2308 jvs(222) = 0.22*b(82,20)
2309 jvs(223) = 0.03*b(97,27)
2310 jvs(224) = 0.3*b(98,28)+0.04*b(99,28)
2311 jvs(225) = 0.47*b(83,30)+b(85,30)
2312 jvs(226) = 1.03*b(84,33)+1.77*b(86,33)
2313 jvs(227) = b(58,35)+b(60,35)+0.8*b(64,35)
2314 jvs(228) = 0.5*b(104,36)+0.5*b(108,36)+0.5*b(116,36)
2315 jvs(229) = -b(66,37)-b(67,37)-b(68,37)
2317 jvs(231) = 0.25*b(102,40)+0.3*b(106,40)+0.21*b(114,40)
2318 jvs(232) = 0.3*b(101,41)
2320 jvs(234) = 0.47*b(83,43)+1.03*b(84,43)+0.03*b(97,43)
2321 jvs(235) = 0.5*b(56,44)+b(65,44)-b(67,44)+0.22*b(82,44)+b(85,44) &
2322 +1.77*b(86,44)+0.04*b(99,44)
2323 jvs(236) = b(58,46)+0.25*b(102,46)+0.5*b(104,46)
2324 jvs(237) = b(60,48)-b(68,48)+0.3*b(106,48)+0.5*b(108,48)
2325 jvs(238) = 0.7*b(55,17)
2327 jvs(240) = 0.07*b(83,30)
2328 jvs(241) = 0.1*b(84,33)
2330 jvs(243) = -b(57,38)-b(59,38)-b(61,38)-b(63,38)
2334 jvs(247) = -b(61,42)
2335 jvs(248) = 0.07*b(83,43)+0.1*b(84,43)
2336 jvs(249) = b(46,44)+0.7*b(55,44)
2337 jvs(250) = b(71,45)+b(72,45)+b(74,45)
2338 jvs(251) = -b(57,46)+b(71,46)
2339 jvs(252) = -b(59,48)+b(72,48)
2341 jvs(254) = 0.11*b(84,33)
2342 jvs(255) = -b(103,39)-b(107,39)-b(111,39)-b(115,39)
2345 jvs(258) = -b(111,42)
2346 jvs(259) = 0.11*b(84,43)
2348 jvs(261) = -b(103,46)
2349 jvs(262) = -b(107,48)
2352 jvs(265) = 0.77*b(99,28)
2353 jvs(266) = 0.03*b(83,30)
2354 jvs(267) = 0.09*b(84,33)
2357 jvs(270) = -b(102,40)-b(106,40)-b(110,40)-b(114,40)
2359 jvs(272) = -b(110,42)
2360 jvs(273) = 0.03*b(83,43)+0.09*b(84,43)
2361 jvs(274) = b(75,44)+0.77*b(99,44)
2362 jvs(275) = -b(102,46)
2363 jvs(276) = -b(106,48)
2365 jvs(278) = 0.05*b(91,16)
2367 jvs(280) = 0.5*b(104,36)+0.5*b(108,36)+b(112,36)+0.5*b(116,36)
2368 jvs(281) = 0.16*b(102,40)
2369 jvs(282) = -b(100,41)-b(101,41)
2370 jvs(283) = b(112,42)
2372 jvs(285) = -b(100,44)
2373 jvs(286) = 0.05*b(91,46)+0.16*b(102,46)+0.5*b(104,46)
2375 jvs(288) = 0.5*b(108,48)
2379 jvs(292) = 0.2*b(89,10)
2380 jvs(293) = 0.55*b(90,12)
2381 jvs(294) = b(5,15)+b(36,15)
2382 jvs(295) = 0.95*b(91,16)
2385 jvs(298) = 0.22*b(81,20)+b(82,20)
2387 jvs(300) = 0.6*b(92,23)
2389 jvs(302) = 2*b(95,27)+b(96,27)+0.76*b(97,27)
2390 jvs(303) = 0.9*b(98,28)
2391 jvs(304) = 0.26*b(83,30)+b(85,30)
2392 jvs(305) = 2*b(49,31)+b(51,31)+b(52,31)
2393 jvs(306) = -b(113,32)
2394 jvs(307) = 0.22*b(84,33)+b(86,33)
2396 jvs(309) = b(58,35)+b(60,35)-b(62,35)+0.6*b(64,35)
2397 jvs(310) = 0.5*b(104,36)+0.5*b(108,36)-b(112,36)
2399 jvs(312) = b(57,38)+b(59,38)-b(61,38)+0.32*b(63,38)
2400 jvs(313) = -b(111,39)
2401 jvs(314) = 0.76*b(102,40)+0.9*b(106,40)-b(110,40)+0.54*b(114,40)
2402 jvs(315) = 0.9*b(101,41)
2403 jvs(316) = -b(21,42)-b(29,42)-2*b(31,42)-2*b(32,42)-b(33,42) &
2404 -b(34,42)-b(35,42)-b(41,42)-b(61,42)-b(62,42)-b(73,42) &
2405 -b(110,42)-b(111,42)-b(112,42)-b(113,42)
2406 jvs(317) = b(20,43)-b(21,43)+0.22*b(81,43)+0.26*b(83,43)+0.22 &
2407 *b(84,43)+0.76*b(97,43)
2408 jvs(318) = b(20,44)+b(22,44)+b(25,44)-b(29,44)+b(30,44)+b(44,44) &
2409 +b(45,44)+b(48,44)+b(51,44)+b(65,44)+b(82,44)+b(85,44) &
2410 +b(86,44)+0.2*b(89,44)+0.55*b(90,44)+0.6*b(92,44)+2 &
2412 jvs(319) = -b(73,45)
2413 jvs(320) = -b(33,46)+b(57,46)+b(58,46)+0.95*b(91,46)+0.76 &
2414 *b(102,46)+0.5*b(104,46)
2415 jvs(321) = -b(34,47)-b(35,47)
2416 jvs(322) = b(25,48)-b(41,48)+b(52,48)+b(59,48)+b(60,48)+0.9 &
2417 *b(106,48)+0.5*b(108,48)
2418 jvs(323) = -b(81,20)
2419 jvs(324) = b(13,22)-b(14,22)
2420 jvs(325) = -b(97,27)
2421 jvs(326) = -b(83,30)
2422 jvs(327) = -b(84,33)
2423 jvs(328) = -b(21,42)+0.4*b(73,42)
2424 jvs(329) = -b(7,43)-b(8,43)-b(14,43)-b(18,43)-b(19,43)-b(20,43) &
2425 -b(21,43)-b(81,43)-b(83,43)-b(84,43)-b(97,43)
2426 jvs(330) = -b(20,44)
2427 jvs(331) = 0.4*b(73,45)
2428 jvs(332) = -b(18,46)
2429 jvs(333) = -b(19,47)
2431 jvs(335) = 2*b(12,4)
2434 jvs(338) = 2*b(9,7)-b(30,7)
2436 jvs(340) = -b(89,10)
2437 jvs(341) = -b(90,12)
2438 jvs(342) = -b(75,13)
2439 jvs(343) = -b(28,15)
2440 jvs(344) = b(53,17)-0.7*b(55,17)
2441 jvs(345) = b(54,18)-0.5*b(56,18)
2442 jvs(346) = b(3,19)-b(26,19)
2443 jvs(347) = 0.12*b(81,20)-b(82,20)
2444 jvs(348) = -b(48,21)
2445 jvs(349) = -b(92,23)
2446 jvs(350) = -b(44,24)
2448 jvs(352) = b(4,26)-b(27,26)
2449 jvs(353) = -b(95,27)+0.08*b(97,27)
2450 jvs(354) = b(98,28)-0.77*b(99,28)
2451 jvs(355) = -b(77,29)
2452 jvs(356) = 0.33*b(83,30)-b(85,30)
2453 jvs(357) = -b(51,31)
2454 jvs(358) = 0.6*b(84,33)-b(86,33)
2455 jvs(359) = -b(79,34)
2458 jvs(362) = -b(67,37)
2462 jvs(366) = -b(100,41)
2463 jvs(367) = b(21,42)-b(29,42)+b(33,42)+0.7*b(41,42)
2464 jvs(368) = -b(20,43)+b(21,43)+0.12*b(81,43)+0.33*b(83,43)+0.6 &
2465 *b(84,43)+0.08*b(97,43)
2466 jvs(369) = -b(20,44)-b(22,44)-b(23,44)-b(24,44)-b(25,44) &
2467 -b(26,44)-b(27,44)-b(28,44)-b(29,44)-b(30,44)-b(44,44) &
2468 -b(45,44)-b(46,44)-b(47,44)-b(48,44)-b(51,44)-0.7 &
2469 *b(55,44)-0.5*b(56,44)-b(65,44)-b(67,44)-b(75,44) &
2470 -b(77,44)-b(79,44)-b(82,44)-b(85,44)-b(86,44)-b(89,44) &
2471 -b(90,44)-b(92,44)-b(95,44)-0.77*b(99,44)-b(100,44)
2473 jvs(371) = -b(23,46)+b(33,46)
2474 jvs(372) = -b(24,47)
2475 jvs(373) = -b(25,48)+0.7*b(41,48)
2477 jvs(375) = b(95,27)+b(96,27)+0.62*b(97,27)
2479 jvs(377) = 0.13*b(83,30)
2480 jvs(378) = 0.19*b(84,33)
2481 jvs(379) = b(78,34)+b(79,34)+b(80,34)
2482 jvs(380) = b(67,37)+b(68,37)
2483 jvs(381) = b(103,39)+b(107,39)+0.7*b(115,39)
2486 jvs(384) = -b(73,42)
2487 jvs(385) = 0.13*b(83,43)+0.19*b(84,43)+0.62*b(97,43)
2488 jvs(386) = b(67,44)+b(79,44)+b(95,44)
2489 jvs(387) = -b(69,45)-b(71,45)-b(72,45)-b(73,45)-b(74,45)
2490 jvs(388) = -b(71,46)+b(103,46)
2491 jvs(389) = -b(69,47)
2492 jvs(390) = b(68,48)-b(72,48)+b(80,48)+b(107,48)
2493 jvs(391) = -b(91,16)
2495 jvs(393) = b(15,22)-b(17,22)
2496 jvs(394) = -b(105,32)
2499 jvs(397) = -b(58,35)
2500 jvs(398) = -b(104,36)
2501 jvs(399) = -b(57,38)
2502 jvs(400) = -b(103,39)
2503 jvs(401) = -b(102,40)
2505 jvs(403) = -b(33,42)
2506 jvs(404) = -b(18,43)
2507 jvs(405) = -b(23,44)
2508 jvs(406) = -b(71,45)
2509 jvs(407) = -b(17,46)-b(18,46)-b(23,46)-b(33,46)-b(37,46) &
2510 -b(57,46)-b(58,46)-b(71,46)-b(91,46)-b(102,46) &
2511 -b(103,46)-b(104,46)-b(105,46)
2512 jvs(408) = b(1,47)+b(15,47)+b(38,47)
2513 jvs(409) = 0.11*b(2,48)-b(37,48)+b(38,48)
2515 jvs(411) = b(6,11)+b(43,11)
2516 jvs(412) = -b(94,14)
2517 jvs(413) = b(5,15)+b(28,15)+b(36,15)
2518 jvs(414) = 0.95*b(91,16)
2520 jvs(416) = -b(15,22)-b(16,22)+b(17,22)
2524 jvs(420) = b(105,32)+b(109,32)
2527 jvs(423) = b(58,35)+b(60,35)
2528 jvs(424) = 1.5*b(104,36)+1.5*b(108,36)+0.5*b(116,36)
2530 jvs(426) = b(57,38)+b(59,38)
2531 jvs(427) = b(103,39)+b(107,39)
2532 jvs(428) = 0.84*b(102,40)+b(106,40)
2533 jvs(429) = b(101,41)
2534 jvs(430) = b(33,42)-b(34,42)-b(35,42)+0.7*b(41,42)
2535 jvs(431) = b(18,43)-b(19,43)
2536 jvs(432) = -b(24,44)+b(25,44)+b(26,44)+b(28,44)
2537 jvs(433) = -b(69,45)+b(71,45)+b(72,45)
2538 jvs(434) = b(17,46)+b(18,46)+b(33,46)+2*b(37,46)+b(57,46) &
2539 +b(58,46)+b(71,46)+0.95*b(91,46)+0.84*b(102,46) &
2540 +b(103,46)+1.5*b(104,46)+b(105,46)
2541 jvs(435) = -b(1,47)-b(15,47)-b(16,47)-b(19,47)-b(24,47)-b(34,47) &
2542 -b(35,47)-b(39,47)-b(69,47)-b(94,47)
2543 jvs(436) = 0.89*b(2,48)+b(25,48)+2*b(37,48)-b(39,48)+2*b(40,48) &
2544 +0.7*b(41,48)+b(59,48)+b(60,48)+b(72,48)+b(106,48) &
2545 +b(107,48)+1.5*b(108,48)+b(109,48)
2546 jvs(437) = b(6,11)+b(43,11)
2548 jvs(439) = -b(93,23)
2550 jvs(441) = -b(87,30)
2551 jvs(442) = -b(52,31)
2552 jvs(443) = -b(109,32)
2553 jvs(444) = -b(88,33)
2554 jvs(445) = -b(80,34)
2555 jvs(446) = -b(60,35)
2556 jvs(447) = -b(108,36)
2557 jvs(448) = -b(68,37)
2558 jvs(449) = -b(59,38)
2559 jvs(450) = -b(107,39)
2560 jvs(451) = -b(106,40)
2562 jvs(453) = -b(41,42)
2564 jvs(455) = -b(25,44)+b(27,44)
2565 jvs(456) = -b(72,45)
2566 jvs(457) = -b(37,46)
2567 jvs(458) = b(16,47)+b(19,47)-b(38,47)-b(39,47)
2568 jvs(459) = -b(2,48)-b(25,48)-b(37,48)-b(38,48)-b(39,48)-2 &
2569 *b(40,48)-b(41,48)-b(52,48)-b(59,48)-b(60,48)-b(68,48) &
2570 -b(72,48)-b(80,48)-b(87,48)-b(88,48)-b(93,48) &
2571 -b(106,48)-b(107,48)-b(108,48)-b(109,48)
2573 end subroutine cbmz_v02r02_jacob
2576 !-----------------------------------------------------------------------------
2577 subroutine cbmz_v02r02_decomp( n, v, ier, &
2578 lu_crow_v, lu_diag_v, lu_icol_v )
2580 ! computes l-u-decomposition of sparse jacobian
2581 ! for mechanism-version-regime = cbmz_v02r02
2583 use module_data_cbmz
2587 ! n = number of variable species [input]
2589 ! ier = status flag [output]
2590 ! 0 = success other = failure [output]
2593 ! v = non-zero elements of the sparse jacobian [input]
2594 real v(lu_nonzero_v_r02_kpp)
2596 integer lu_crow_v(nvar_r02_kpp + 1)
2597 integer lu_diag_v(nvar_r02_kpp + 1)
2598 integer lu_icol_v(lu_nonzero_v_r02_kpp)
2601 integer k, kk, j, jj
2602 real a, w(nvar_r02_kpp + 1)
2606 if ( v( lu_diag_v(k) ) .eq. 0. ) then
2610 do kk = lu_crow_v(k), lu_crow_v(k+1)-1
2611 w( lu_icol_v(kk) ) = v(kk)
2613 do kk = lu_crow_v(k), lu_diag_v(k)-1
2615 a = -w(j) / v( lu_diag_v(j) )
2617 do jj = lu_diag_v(j)+1, lu_crow_v(j+1)-1
2618 w( lu_icol_v(jj) ) = w( lu_icol_v(jj) ) + a*v(jj)
2621 do kk = lu_crow_v(k), lu_crow_v(k+1)-1
2622 v(kk) = w( lu_icol_v(kk) )
2626 end subroutine cbmz_v02r02_decomp
2629 !-----------------------------------------------------------------------------
2630 subroutine cbmz_v02r02_solve( jvs, x )
2632 ! does back-solve for mechanism-version-regime = cbmz_v02r02
2637 ! jvs = the non-zero elements of the l-u-decomposition
2638 ! of the augmented jacobian [input]
2640 ! x = the right-hand side of the linear equation set being solved [on input]
2641 ! x = concentrations of variable species [on output]
2645 x(13) = x(13)-jvs(36)*x(12)
2646 x(16) = x(16)-jvs(49)*x(10)-jvs(50)*x(12)
2647 x(22) = x(22)-jvs(76)*x(4)
2648 x(23) = x(23)-jvs(82)*x(10)-jvs(83)*x(12)
2649 x(24) = x(24)-jvs(87)*x(20)
2650 x(25) = x(25)-jvs(98)*x(13)
2651 x(26) = x(26)-jvs(110)*x(11)-jvs(111)*x(23)
2652 x(27) = x(27)-jvs(120)*x(16)-jvs(121)*x(23)
2653 x(29) = x(29)-jvs(132)*x(28)
2654 x(31) = x(31)-jvs(147)*x(17)-jvs(148)*x(20)-jvs(149)*x(21) &
2655 -jvs(150)*x(27)-jvs(151)*x(30)
2656 x(32) = x(32)-jvs(162)*x(10)-jvs(163)*x(12)-jvs(164)*x(20) &
2657 -jvs(165)*x(23)-jvs(166)*x(27)-jvs(167)*x(28)-jvs(168) &
2659 x(34) = x(34)-jvs(184)*x(12)-jvs(185)*x(27)-jvs(186)*x(28) &
2660 -jvs(187)*x(30)-jvs(188)*x(33)
2661 x(35) = x(35)-jvs(197)*x(8)-jvs(198)*x(18)-jvs(199)*x(28) &
2662 -jvs(200)*x(30)-jvs(201)*x(33)
2663 x(36) = x(36)-jvs(211)*x(30)-jvs(212)*x(33)
2664 x(37) = x(37)-jvs(220)*x(6)-jvs(221)*x(18)-jvs(222)*x(20) &
2665 -jvs(223)*x(27)-jvs(224)*x(28)-jvs(225)*x(30)-jvs(226) &
2666 *x(33)-jvs(227)*x(35)-jvs(228)*x(36)
2667 x(38) = x(38)-jvs(238)*x(17)-jvs(239)*x(29)-jvs(240)*x(30) &
2668 -jvs(241)*x(33)-jvs(242)*x(37)
2669 x(39) = x(39)-jvs(253)*x(29)-jvs(254)*x(33)
2670 x(40) = x(40)-jvs(263)*x(13)-jvs(264)*x(25)-jvs(265)*x(28) &
2671 -jvs(266)*x(30)-jvs(267)*x(33)-jvs(268)*x(36)-jvs(269) &
2673 x(41) = x(41)-jvs(277)*x(14)-jvs(278)*x(16)-jvs(279)*x(23) &
2674 -jvs(280)*x(36)-jvs(281)*x(40)
2675 x(42) = x(42)-jvs(289)*x(5)-jvs(290)*x(6)-jvs(291)*x(7)-jvs(292) &
2676 *x(10)-jvs(293)*x(12)-jvs(294)*x(15)-jvs(295)*x(16) &
2677 -jvs(296)*x(17)-jvs(297)*x(18)-jvs(298)*x(20)-jvs(299) &
2678 *x(21)-jvs(300)*x(23)-jvs(301)*x(24)-jvs(302)*x(27) &
2679 -jvs(303)*x(28)-jvs(304)*x(30)-jvs(305)*x(31)-jvs(306) &
2680 *x(32)-jvs(307)*x(33)-jvs(308)*x(34)-jvs(309)*x(35) &
2681 -jvs(310)*x(36)-jvs(311)*x(37)-jvs(312)*x(38)-jvs(313) &
2682 *x(39)-jvs(314)*x(40)-jvs(315)*x(41)
2683 x(43) = x(43)-jvs(323)*x(20)-jvs(324)*x(22)-jvs(325)*x(27) &
2684 -jvs(326)*x(30)-jvs(327)*x(33)-jvs(328)*x(42)
2685 x(44) = x(44)-jvs(335)*x(4)-jvs(336)*x(5)-jvs(337)*x(6)-jvs(338) &
2686 *x(7)-jvs(339)*x(8)-jvs(340)*x(10)-jvs(341)*x(12) &
2687 -jvs(342)*x(13)-jvs(343)*x(15)-jvs(344)*x(17)-jvs(345) &
2688 *x(18)-jvs(346)*x(19)-jvs(347)*x(20)-jvs(348)*x(21) &
2689 -jvs(349)*x(23)-jvs(350)*x(24)-jvs(351)*x(25)-jvs(352) &
2690 *x(26)-jvs(353)*x(27)-jvs(354)*x(28)-jvs(355)*x(29) &
2691 -jvs(356)*x(30)-jvs(357)*x(31)-jvs(358)*x(33)-jvs(359) &
2692 *x(34)-jvs(360)*x(35)-jvs(361)*x(36)-jvs(362)*x(37) &
2693 -jvs(363)*x(38)-jvs(364)*x(39)-jvs(365)*x(40)-jvs(366) &
2694 *x(41)-jvs(367)*x(42)-jvs(368)*x(43)
2695 x(45) = x(45)-jvs(374)*x(9)-jvs(375)*x(27)-jvs(376)*x(29) &
2696 -jvs(377)*x(30)-jvs(378)*x(33)-jvs(379)*x(34)-jvs(380) &
2697 *x(37)-jvs(381)*x(39)-jvs(382)*x(40)-jvs(383)*x(41) &
2698 -jvs(384)*x(42)-jvs(385)*x(43)-jvs(386)*x(44)
2699 x(46) = x(46)-jvs(391)*x(16)-jvs(392)*x(19)-jvs(393)*x(22) &
2700 -jvs(394)*x(32)-jvs(395)*x(33)-jvs(396)*x(34)-jvs(397) &
2701 *x(35)-jvs(398)*x(36)-jvs(399)*x(38)-jvs(400)*x(39) &
2702 -jvs(401)*x(40)-jvs(402)*x(41)-jvs(403)*x(42)-jvs(404) &
2703 *x(43)-jvs(405)*x(44)-jvs(406)*x(45)
2704 x(47) = x(47)-jvs(410)*x(9)-jvs(411)*x(11)-jvs(412)*x(14) &
2705 -jvs(413)*x(15)-jvs(414)*x(16)-jvs(415)*x(19)-jvs(416) &
2706 *x(22)-jvs(417)*x(23)-jvs(418)*x(26)-jvs(419)*x(31) &
2707 -jvs(420)*x(32)-jvs(421)*x(33)-jvs(422)*x(34)-jvs(423) &
2708 *x(35)-jvs(424)*x(36)-jvs(425)*x(37)-jvs(426)*x(38) &
2709 -jvs(427)*x(39)-jvs(428)*x(40)-jvs(429)*x(41)-jvs(430) &
2710 *x(42)-jvs(431)*x(43)-jvs(432)*x(44)-jvs(433)*x(45) &
2712 x(48) = x(48)-jvs(437)*x(11)-jvs(438)*x(22)-jvs(439)*x(23) &
2713 -jvs(440)*x(26)-jvs(441)*x(30)-jvs(442)*x(31)-jvs(443) &
2714 *x(32)-jvs(444)*x(33)-jvs(445)*x(34)-jvs(446)*x(35) &
2715 -jvs(447)*x(36)-jvs(448)*x(37)-jvs(449)*x(38)-jvs(450) &
2716 *x(39)-jvs(451)*x(40)-jvs(452)*x(41)-jvs(453)*x(42) &
2717 -jvs(454)*x(43)-jvs(455)*x(44)-jvs(456)*x(45)-jvs(457) &
2718 *x(46)-jvs(458)*x(47)
2719 x(48) = x(48)/jvs(459)
2720 x(47) = (x(47)-jvs(436)*x(48))/(jvs(435))
2721 x(46) = (x(46)-jvs(408)*x(47)-jvs(409)*x(48))/(jvs(407))
2722 x(45) = (x(45)-jvs(388)*x(46)-jvs(389)*x(47)-jvs(390)*x(48))/ &
2724 x(44) = (x(44)-jvs(370)*x(45)-jvs(371)*x(46)-jvs(372)*x(47) &
2725 -jvs(373)*x(48))/(jvs(369))
2726 x(43) = (x(43)-jvs(330)*x(44)-jvs(331)*x(45)-jvs(332)*x(46) &
2727 -jvs(333)*x(47)-jvs(334)*x(48))/(jvs(329))
2728 x(42) = (x(42)-jvs(317)*x(43)-jvs(318)*x(44)-jvs(319)*x(45) &
2729 -jvs(320)*x(46)-jvs(321)*x(47)-jvs(322)*x(48))/(jvs(316))
2730 x(41) = (x(41)-jvs(283)*x(42)-jvs(284)*x(43)-jvs(285)*x(44) &
2731 -jvs(286)*x(46)-jvs(287)*x(47)-jvs(288)*x(48))/(jvs(282))
2732 x(40) = (x(40)-jvs(271)*x(41)-jvs(272)*x(42)-jvs(273)*x(43) &
2733 -jvs(274)*x(44)-jvs(275)*x(46)-jvs(276)*x(48))/(jvs(270))
2734 x(39) = (x(39)-jvs(256)*x(40)-jvs(257)*x(41)-jvs(258)*x(42) &
2735 -jvs(259)*x(43)-jvs(260)*x(44)-jvs(261)*x(46)-jvs(262) &
2737 x(38) = (x(38)-jvs(244)*x(39)-jvs(245)*x(40)-jvs(246)*x(41) &
2738 -jvs(247)*x(42)-jvs(248)*x(43)-jvs(249)*x(44)-jvs(250) &
2739 *x(45)-jvs(251)*x(46)-jvs(252)*x(48))/(jvs(243))
2740 x(37) = (x(37)-jvs(230)*x(39)-jvs(231)*x(40)-jvs(232)*x(41) &
2741 -jvs(233)*x(42)-jvs(234)*x(43)-jvs(235)*x(44)-jvs(236) &
2742 *x(46)-jvs(237)*x(48))/(jvs(229))
2743 x(36) = (x(36)-jvs(214)*x(41)-jvs(215)*x(42)-jvs(216)*x(43) &
2744 -jvs(217)*x(44)-jvs(218)*x(46)-jvs(219)*x(48))/(jvs(213))
2745 x(35) = (x(35)-jvs(203)*x(39)-jvs(204)*x(40)-jvs(205)*x(41) &
2746 -jvs(206)*x(42)-jvs(207)*x(43)-jvs(208)*x(44)-jvs(209) &
2747 *x(46)-jvs(210)*x(48))/(jvs(202))
2748 x(34) = (x(34)-jvs(190)*x(39)-jvs(191)*x(40)-jvs(192)*x(42) &
2749 -jvs(193)*x(43)-jvs(194)*x(44)-jvs(195)*x(46)-jvs(196) &
2751 x(33) = (x(33)-jvs(181)*x(43)-jvs(182)*x(44)-jvs(183)*x(48))/ &
2753 x(32) = (x(32)-jvs(170)*x(33)-jvs(171)*x(34)-jvs(172)*x(39) &
2754 -jvs(173)*x(40)-jvs(174)*x(41)-jvs(175)*x(42)-jvs(176) &
2755 *x(43)-jvs(177)*x(44)-jvs(178)*x(46)-jvs(179)*x(48))/ &
2757 x(31) = (x(31)-jvs(153)*x(33)-jvs(154)*x(36)-jvs(155)*x(38) &
2758 -jvs(156)*x(39)-jvs(157)*x(42)-jvs(158)*x(43)-jvs(159) &
2759 *x(44)-jvs(160)*x(46)-jvs(161)*x(48))/(jvs(152))
2760 x(30) = (x(30)-jvs(144)*x(43)-jvs(145)*x(44)-jvs(146)*x(48))/ &
2762 x(29) = (x(29)-jvs(134)*x(33)-jvs(135)*x(39)-jvs(136)*x(40) &
2763 -jvs(137)*x(41)-jvs(138)*x(42)-jvs(139)*x(43)-jvs(140) &
2764 *x(44)-jvs(141)*x(46)-jvs(142)*x(48))/(jvs(133))
2765 x(28) = (x(28)-jvs(128)*x(39)-jvs(129)*x(40)-jvs(130)*x(42) &
2766 -jvs(131)*x(44))/(jvs(127))
2767 x(27) = (x(27)-jvs(123)*x(43)-jvs(124)*x(44)-jvs(125)*x(46) &
2768 -jvs(126)*x(48))/(jvs(122))
2769 x(26) = (x(26)-jvs(113)*x(31)-jvs(114)*x(34)-jvs(115)*x(37) &
2770 -jvs(116)*x(42)-jvs(117)*x(44)-jvs(118)*x(47)-jvs(119) &
2772 x(25) = (x(25)-jvs(100)*x(28)-jvs(101)*x(30)-jvs(102)*x(33) &
2773 -jvs(103)*x(36)-jvs(104)*x(40)-jvs(105)*x(41)-jvs(106) &
2774 *x(43)-jvs(107)*x(44)-jvs(108)*x(46)-jvs(109)*x(48))/ &
2776 x(24) = (x(24)-jvs(89)*x(27)-jvs(90)*x(30)-jvs(91)*x(31)-jvs(92) &
2777 *x(33)-jvs(93)*x(34)-jvs(94)*x(37)-jvs(95)*x(43)-jvs(96) &
2778 *x(44)-jvs(97)*x(48))/(jvs(88))
2779 x(23) = (x(23)-jvs(85)*x(44)-jvs(86)*x(48))/(jvs(84))
2780 x(22) = (x(22)-jvs(78)*x(43)-jvs(79)*x(46)-jvs(80)*x(47)-jvs(81) &
2782 x(21) = (x(21)-jvs(71)*x(30)-jvs(72)*x(33)-jvs(73)*x(38)-jvs(74) &
2783 *x(43)-jvs(75)*x(44))/(jvs(70))
2784 x(20) = (x(20)-jvs(68)*x(43)-jvs(69)*x(44))/(jvs(67))
2785 x(19) = (x(19)-jvs(63)*x(42)-jvs(64)*x(44)-jvs(65)*x(46)-jvs(66) &
2787 x(18) = (x(18)-jvs(59)*x(35)-jvs(60)*x(42)-jvs(61)*x(44))/ &
2789 x(17) = (x(17)-jvs(55)*x(38)-jvs(56)*x(42)-jvs(57)*x(44))/ &
2791 x(16) = (x(16)-jvs(52)*x(44)-jvs(53)*x(46))/(jvs(51))
2792 x(15) = (x(15)-jvs(46)*x(42)-jvs(47)*x(44)-jvs(48)*x(47))/ &
2794 x(14) = (x(14)-jvs(41)*x(23)-jvs(42)*x(44)-jvs(43)*x(47)-jvs(44) &
2796 x(13) = (x(13)-jvs(38)*x(25)-jvs(39)*x(44))/(jvs(37))
2797 x(12) = (x(12)-jvs(35)*x(44))/(jvs(34))
2798 x(11) = (x(11)-jvs(32)*x(47)-jvs(33)*x(48))/(jvs(31))
2799 x(10) = (x(10)-jvs(30)*x(44))/(jvs(29))
2800 x(9) = (x(9)-jvs(27)*x(45)-jvs(28)*x(47))/(jvs(26))
2801 x(8) = (x(8)-jvs(24)*x(35)-jvs(25)*x(44))/(jvs(23))
2802 x(7) = (x(7)-jvs(21)*x(42)-jvs(22)*x(44))/(jvs(20))
2803 x(6) = (x(6)-jvs(19)*x(44))/(jvs(18))
2804 x(5) = (x(5)-jvs(17)*x(44))/(jvs(16))
2805 x(4) = (x(4)-jvs(15)*x(43))/(jvs(14))
2806 x(3) = (x(3)-jvs(9)*x(30)-jvs(10)*x(33)-jvs(11)*x(42)-jvs(12) &
2807 *x(43)-jvs(13)*x(45))/(jvs(8))
2808 x(2) = (x(2)-jvs(5)*x(20)-jvs(6)*x(30)-jvs(7)*x(43))/(jvs(4))
2809 x(1) = (x(1)-jvs(2)*x(5)-jvs(3)*x(44))/(jvs(1))
2811 end subroutine cbmz_v02r02_solve
2814 ! cbmz_v02r03_torodas.f - created on 17-nov-2003 from previous
2815 ! cbmz_v02r03_torodas.f cbmz_v02r03_mapconcs.f
2816 ! cbmz_v02r03_maprates.f cbmz_v02r03_dydt.f
2817 ! cbmz_v02r03_jacob.f cbmz_v02r03_decomp.f
2818 ! cbmz_v02r03_solve.f
2819 ! so now everything is in a single file
2820 !-----------------------------------------------------------------------
2822 subroutine cbmz_v02r03_torodas( &
2824 stot, atol, rtol, yposlimit, yneglimit, &
2825 sfixedkpp, rconstkpp, &
2827 info_rodas, iok, lunerr, idydt_sngldble )
2829 ! interfaces to rodas3 solver formechanism-version-regime =cbmz_v02r03
2831 ! *** do not include any pegasus common blocks ***
2833 use module_data_cbmz
2834 use module_cbmz_rodas3_solver, only: rodas3_ff_x2
2838 integer ngas, iok, lunerr, idydt_sngldble
2839 integer info_rodas(6)
2840 real taa, tzz, hmin, hstart
2841 real stot(ngas), atol(ngas), rtol(ngas)
2842 real yposlimit(ngas), yneglimit(ngas)
2843 real sfixedkpp(nfixed_kppmax), rconstkpp(nreact_kppmax)
2847 ! external cbmz_v02r03_dydt
2848 ! external cbmz_v02r03_jacob
2849 ! external cbmz_v02r03_decomp
2850 ! external cbmz_v02r03_solve
2855 integer lu_crow_v(nvar_r03_kpp + 1)
2857 integer lu_diag_v(nvar_r03_kpp + 1)
2859 integer lu_icol_v(lu_nonzero_v_r03_kpp)
2862 data( lu_icol_v(i), i = 1, 252 ) / &
2863 1, 5, 48, 2, 20, 31, 32, 42, 49, 3, 31, 36, &
2864 47, 49, 50, 4, 49, 5, 48, 6, 48, 7, 48, 50, &
2865 8, 39, 48, 9, 47, 52, 10, 48, 11, 52, 53, 12, &
2866 48, 13, 23, 48, 52, 53, 14, 48, 50, 52, 10, 12, &
2867 15, 48, 51, 16, 26, 31, 36, 37, 44, 45, 46, 48, &
2868 49, 51, 53, 17, 41, 48, 50, 18, 39, 48, 50, 19, &
2869 48, 50, 51, 52, 20, 48, 49, 21, 31, 36, 41, 48, &
2870 49, 4, 22, 49, 51, 52, 53, 10, 12, 23, 48, 53, &
2871 11, 23, 24, 33, 38, 40, 42, 48, 50, 52, 53, 20, &
2872 25, 27, 30, 31, 32, 33, 36, 38, 40, 42, 48, 49, &
2873 51, 53, 12, 16, 26, 28, 29, 31, 36, 37, 42, 44, &
2874 45, 46, 48, 49, 50, 51, 53, 15, 23, 27, 48, 49, &
2875 51, 53, 28, 32, 50, 51, 53, 29, 32, 48, 50, 51, &
2876 30, 42, 48, 50, 51, 31, 48, 49, 53, 32, 48, 49, &
2877 53, 17, 20, 21, 27, 29, 30, 31, 32, 33, 36, 37, &
2878 41, 42, 43, 48, 49, 50, 51, 53, 10, 12, 20, 23, &
2879 27, 31, 32, 34, 36, 38, 42, 44, 45, 46, 48, 49, &
2880 50, 51, 53, 30, 35, 36, 42, 43, 44, 45, 46, 48, &
2881 49, 50, 51, 53, 36, 48, 49, 53, 31, 36, 37, 46, &
2882 48, 49, 50, 51, 53, 12, 27, 30, 31, 36, 38, 42, &
2883 43, 44, 48, 49, 50, 51, 53, 8, 18, 31, 36, 39 /
2885 data( lu_icol_v(i), i = 253, 504 ) / &
2886 44, 45, 46, 48, 49, 50, 51, 53, 6, 18, 20, 27, &
2887 28, 30, 31, 32, 36, 37, 39, 40, 42, 44, 45, 46, &
2888 48, 49, 50, 51, 53, 17, 31, 35, 36, 40, 41, 42, &
2889 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 28, 29, &
2890 32, 42, 48, 49, 50, 51, 53, 35, 36, 42, 43, 44, &
2891 45, 46, 48, 49, 50, 51, 53, 29, 30, 32, 42, 43, &
2892 44, 45, 46, 48, 49, 50, 51, 53, 26, 28, 29, 31, &
2893 32, 36, 37, 42, 44, 45, 46, 48, 49, 50, 51, 53, &
2894 13, 15, 23, 28, 29, 32, 37, 42, 45, 46, 48, 49, &
2895 50, 51, 52, 53, 9, 27, 31, 32, 35, 36, 38, 40, &
2896 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, &
2897 4, 5, 6, 7, 8, 10, 12, 14, 17, 18, 19, 20, &
2898 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, &
2899 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, &
2900 47, 48, 49, 50, 51, 52, 53, 20, 22, 27, 31, 32, &
2901 36, 42, 47, 48, 49, 50, 51, 52, 53, 5, 6, 7, &
2902 10, 12, 14, 15, 17, 18, 20, 21, 23, 25, 27, 28, &
2903 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, &
2904 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, &
2905 15, 19, 22, 28, 29, 30, 32, 34, 36, 37, 38, 39, &
2906 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 /
2908 data( lu_icol_v(i), i = 505, 564 ) / &
2909 53, 9, 11, 13, 14, 15, 19, 22, 23, 24, 28, 29, &
2910 30, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, &
2911 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 11, 22, &
2912 23, 24, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, &
2913 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 /
2916 1, 4, 10, 16, 18, 20, 22, 25, 28, 31, 33, 36, &
2917 38, 43, 47, 52, 64, 68, 72, 77, 80, 86, 92, 97, &
2918 108,123,140,147,152,157,162,166,170,189,208,221, &
2919 225,234,248,261,282,299,308,320,333,349,365,385, &
2920 428,442,481,506,539,565 /
2923 1, 4, 10, 16, 18, 20, 22, 25, 28, 31, 33, 36, &
2924 38, 43, 49, 52, 64, 68, 72, 77, 80, 87, 94, 99, &
2925 109,125,142,147,152,157,162,166,178,196,209,221, &
2926 227,239,252,272,287,302,311,325,342,358,378,422, &
2927 437,477,503,537,564,565 /
2937 ! do not integrate if hmax is less/equal to hmin
2938 ! because hmin is generally 0.1 s or less
2939 if (hmax .le. 1.001*hmin) then
2944 call rodas3_ff_x2( &
2945 nvar_r03_kpp, taa, tzz, hmin, hmax, hstart, &
2946 stot, atol, rtol, yposlimit, yneglimit, &
2947 sfixedkpp, rconstkpp, &
2948 lu_nonzero_v_r03_kpp, lu_crow_v, lu_diag_v, lu_icol_v, &
2949 info_rodas, iok, lunerr, &
2951 cbmz_v02r03_jacob, &
2952 cbmz_v02r03_decomp, &
2956 end subroutine cbmz_v02r03_torodas
2959 !-----------------------------------------------------------------------------
2960 subroutine cbmz_v02r03_mapconcs( imap, nyy, yy, yyfixed, cbox )
2962 ! maps species concentrations (gaschemistry cbox array <--> kpp yy array)
2963 ! for mechanism-version-regime = cbmz_v02r03
2965 use module_data_cbmz
2969 ! imap = mapping direction flag [input]
2970 ! 0 = map cbox --> yy and yyfixed
2971 ! 1 = map yy --> cbox
2973 ! nyy = number of kpp "variable" species [output]
2975 ! yy = kpp species concentrations array [input/output]
2976 real yy(nvar_r03_kpp)
2977 ! yyfixed = kpp species concentrations array [input/output]
2978 real yyfixed(nfixed_kppmax)
2979 ! cbox = main gaschemistry species conc array [input/output]
2984 parameter ( ih2so4_kpp = 1 )
2986 parameter ( ihcooh_kpp = 2 )
2988 parameter ( ircooh_kpp = 3 )
2990 parameter ( io1d_kpp = 4 )
2992 parameter ( iso2_kpp = 5 )
2994 parameter ( ic2h5oh_kpp = 6 )
2996 parameter ( ih2o2_kpp = 7 )
2998 parameter ( ic2h6_kpp = 8 )
3000 parameter ( ipan_kpp = 9 )
3002 parameter ( itol_kpp = 10 )
3004 parameter ( in2o5_kpp = 11 )
3006 parameter ( ixyl_kpp = 12 )
3008 parameter ( icro_kpp = 13 )
3010 parameter ( ihno4_kpp = 14 )
3012 parameter ( ito2_kpp = 15 )
3014 parameter ( ixpar_kpp = 16 )
3016 parameter ( ich3ooh_kpp = 17 )
3018 parameter ( iethooh_kpp = 18 )
3020 parameter ( ihono_kpp = 19 )
3022 parameter ( ieth_kpp = 20 )
3024 parameter ( ich3oh_kpp = 21 )
3026 parameter ( io3p_kpp = 22 )
3028 parameter ( icres_kpp = 23 )
3030 parameter ( ihno3_kpp = 24 )
3032 parameter ( ico_kpp = 25 )
3034 parameter ( ipar_kpp = 26 )
3036 parameter ( iopen_kpp = 27 )
3038 parameter ( iisopn_kpp = 28 )
3040 parameter ( iisopp_kpp = 29 )
3042 parameter ( iisopo2_kpp = 30 )
3044 parameter ( iolet_kpp = 31 )
3046 parameter ( iisop_kpp = 32 )
3048 parameter ( ihcho_kpp = 33 )
3050 parameter ( ixo2_kpp = 34 )
3052 parameter ( iaone_kpp = 35 )
3054 parameter ( iolei_kpp = 36 )
3056 parameter ( inap_kpp = 37 )
3058 parameter ( imgly_kpp = 38 )
3060 parameter ( iethp_kpp = 39 )
3062 parameter ( iald2_kpp = 40 )
3064 parameter ( ich3o2_kpp = 41 )
3066 parameter ( iisoprd_kpp = 42 )
3068 parameter ( iano2_kpp = 43 )
3070 parameter ( irooh_kpp = 44 )
3072 parameter ( iro2_kpp = 45 )
3074 parameter ( ionit_kpp = 46 )
3076 parameter ( ic2o3_kpp = 47 )
3078 parameter ( ioh_kpp = 48 )
3080 parameter ( io3_kpp = 49 )
3082 parameter ( iho2_kpp = 50 )
3084 parameter ( ino_kpp = 51 )
3086 parameter ( ino2_kpp = 52 )
3088 parameter ( ino3_kpp = 53 )
3090 ! indexes declaration for fixed species
3093 parameter ( ich4_kpp = 1 )
3095 parameter ( ih2o_kpp = 2 )
3097 parameter ( ih2_kpp = 3 )
3099 parameter ( io2_kpp = 4 )
3101 parameter ( in2_kpp = 5 )
3106 if (imap .le. 0) goto 1000
3107 if (imap .ge. 1) goto 2000
3111 ! map cbox values into yyvarkpp and yyfixkpp
3114 yy(ih2so4_kpp) = cbox(ih2so4_z)
3115 yy(ihcooh_kpp) = cbox(ihcooh_z)
3116 yy(ircooh_kpp) = cbox(ircooh_z)
3117 yy(io1d_kpp) = cbox(io1d_z)
3118 yy(iso2_kpp) = cbox(iso2_z)
3119 yy(ic2h5oh_kpp) = cbox(ic2h5oh_z)
3120 yy(ih2o2_kpp) = cbox(ih2o2_z)
3121 yy(ic2h6_kpp) = cbox(ic2h6_z)
3122 yy(ipan_kpp) = cbox(ipan_z)
3123 yy(itol_kpp) = cbox(itol_z)
3124 yy(in2o5_kpp) = cbox(in2o5_z)
3125 yy(ixyl_kpp) = cbox(ixyl_z)
3126 yy(icro_kpp) = cbox(icro_z)
3127 yy(ihno4_kpp) = cbox(ihno4_z)
3128 yy(ito2_kpp) = cbox(ito2_z)
3129 yy(ixpar_kpp) = cbox(ixpar_z)
3130 yy(ich3ooh_kpp) = cbox(ich3ooh_z)
3131 yy(iethooh_kpp) = cbox(iethooh_z)
3132 yy(ihono_kpp) = cbox(ihono_z)
3133 yy(ieth_kpp) = cbox(ieth_z)
3134 yy(ich3oh_kpp) = cbox(ich3oh_z)
3135 yy(io3p_kpp) = cbox(io3p_z)
3136 yy(icres_kpp) = cbox(icres_z)
3137 yy(ihno3_kpp) = cbox(ihno3_z)
3138 yy(ico_kpp) = cbox(ico_z)
3139 yy(ipar_kpp) = cbox(ipar_z)
3140 yy(iopen_kpp) = cbox(iopen_z)
3141 yy(iisopn_kpp) = cbox(iisopn_z)
3142 yy(iisopp_kpp) = cbox(iisopp_z)
3143 yy(iisopo2_kpp) = cbox(iisopo2_z)
3144 yy(iolet_kpp) = cbox(iolet_z)
3145 yy(iisop_kpp) = cbox(iisop_z)
3146 yy(ihcho_kpp) = cbox(ihcho_z)
3147 yy(ixo2_kpp) = cbox(ixo2_z)
3148 yy(iaone_kpp) = cbox(iaone_z)
3149 yy(iolei_kpp) = cbox(iolei_z)
3150 yy(inap_kpp) = cbox(inap_z)
3151 yy(imgly_kpp) = cbox(imgly_z)
3152 yy(iethp_kpp) = cbox(iethp_z)
3153 yy(iald2_kpp) = cbox(iald2_z)
3154 yy(ich3o2_kpp) = cbox(ich3o2_z)
3155 yy(iisoprd_kpp) = cbox(iisoprd_z)
3156 yy(iano2_kpp) = cbox(iano2_z)
3157 yy(irooh_kpp) = cbox(irooh_z)
3158 yy(iro2_kpp) = cbox(iro2_z)
3159 yy(ionit_kpp) = cbox(ionit_z)
3160 yy(ic2o3_kpp) = cbox(ic2o3_z)
3161 yy(ioh_kpp) = cbox(ioh_z)
3162 yy(io3_kpp) = cbox(io3_z)
3163 yy(iho2_kpp) = cbox(iho2_z)
3164 yy(ino_kpp) = cbox(ino_z)
3165 yy(ino2_kpp) = cbox(ino2_z)
3166 yy(ino3_kpp) = cbox(ino3_z)
3168 yyfixed(ich4_kpp) = cbox(ich4_z)
3169 yyfixed(ih2o_kpp) = cbox(ih2o_z)
3170 yyfixed(ih2_kpp) = cbox(ih2_z)
3171 yyfixed(io2_kpp) = cbox(io2_z)
3172 yyfixed(in2_kpp) = cbox(in2_z)
3175 ! map yyvarkpp values into cbox
3178 cbox(ih2so4_z) = yy(ih2so4_kpp)
3179 cbox(ihcooh_z) = yy(ihcooh_kpp)
3180 cbox(ircooh_z) = yy(ircooh_kpp)
3181 cbox(io1d_z) = yy(io1d_kpp)
3182 cbox(iso2_z) = yy(iso2_kpp)
3183 cbox(ic2h5oh_z) = yy(ic2h5oh_kpp)
3184 cbox(ih2o2_z) = yy(ih2o2_kpp)
3185 cbox(ic2h6_z) = yy(ic2h6_kpp)
3186 cbox(ipan_z) = yy(ipan_kpp)
3187 cbox(itol_z) = yy(itol_kpp)
3188 cbox(in2o5_z) = yy(in2o5_kpp)
3189 cbox(ixyl_z) = yy(ixyl_kpp)
3190 cbox(icro_z) = yy(icro_kpp)
3191 cbox(ihno4_z) = yy(ihno4_kpp)
3192 cbox(ito2_z) = yy(ito2_kpp)
3193 cbox(ixpar_z) = yy(ixpar_kpp)
3194 cbox(ich3ooh_z) = yy(ich3ooh_kpp)
3195 cbox(iethooh_z) = yy(iethooh_kpp)
3196 cbox(ihono_z) = yy(ihono_kpp)
3197 cbox(ieth_z) = yy(ieth_kpp)
3198 cbox(ich3oh_z) = yy(ich3oh_kpp)
3199 cbox(io3p_z) = yy(io3p_kpp)
3200 cbox(icres_z) = yy(icres_kpp)
3201 cbox(ihno3_z) = yy(ihno3_kpp)
3202 cbox(ico_z) = yy(ico_kpp)
3203 cbox(ipar_z) = yy(ipar_kpp)
3204 cbox(iopen_z) = yy(iopen_kpp)
3205 cbox(iisopn_z) = yy(iisopn_kpp)
3206 cbox(iisopp_z) = yy(iisopp_kpp)
3207 cbox(iisopo2_z) = yy(iisopo2_kpp)
3208 cbox(iolet_z) = yy(iolet_kpp)
3209 cbox(iisop_z) = yy(iisop_kpp)
3210 cbox(ihcho_z) = yy(ihcho_kpp)
3211 cbox(ixo2_z) = yy(ixo2_kpp)
3212 cbox(iaone_z) = yy(iaone_kpp)
3213 cbox(iolei_z) = yy(iolei_kpp)
3214 cbox(inap_z) = yy(inap_kpp)
3215 cbox(imgly_z) = yy(imgly_kpp)
3216 cbox(iethp_z) = yy(iethp_kpp)
3217 cbox(iald2_z) = yy(iald2_kpp)
3218 cbox(ich3o2_z) = yy(ich3o2_kpp)
3219 cbox(iisoprd_z) = yy(iisoprd_kpp)
3220 cbox(iano2_z) = yy(iano2_kpp)
3221 cbox(irooh_z) = yy(irooh_kpp)
3222 cbox(iro2_z) = yy(iro2_kpp)
3223 cbox(ionit_z) = yy(ionit_kpp)
3224 cbox(ic2o3_z) = yy(ic2o3_kpp)
3225 cbox(ioh_z) = yy(ioh_kpp)
3226 cbox(io3_z) = yy(io3_kpp)
3227 cbox(iho2_z) = yy(iho2_kpp)
3228 cbox(ino_z) = yy(ino_kpp)
3229 cbox(ino2_z) = yy(ino2_kpp)
3230 cbox(ino3_z) = yy(ino3_kpp)
3233 end subroutine cbmz_v02r03_mapconcs
3236 !-----------------------------------------------------------------------------
3237 subroutine cbmz_v02r03_maprates( &
3244 ! maps reaction rate constants (host code array --> kpp rconst array)
3245 ! for mechanism-version-regime = cbmz_v02r03
3247 use module_data_cbmz
3251 ! all are host-code reaction-rate-constant arrays [input]
3257 real rconst(nreact_kppmax)
3262 do i = 1, nreact_kppmax
3267 rconst(1) = (rk_m1(1))
3268 rconst(2) = (rk_m1(2))
3269 rconst(3) = (rk_m1(3))
3270 rconst(4) = (rk_m1(4))
3271 rconst(5) = (rk_m1(5))
3272 rconst(6) = (rk_m1(6))
3273 rconst(7) = (rk_m1(7))
3274 rconst(8) = (rk_m1(8))
3275 rconst(9) = (rk_m1(9))
3276 rconst(10) = (rk_m1(10))
3277 rconst(11) = (rk_m1(11))
3278 rconst(12) = (rk_m1(12))
3279 rconst(13) = (rk_m1(13))
3280 rconst(14) = (rk_m1(14))
3281 rconst(15) = (rk_m1(15))
3282 rconst(16) = (rk_m1(16))
3283 rconst(17) = (rk_m1(17))
3284 rconst(18) = (rk_m1(18))
3285 rconst(19) = (rk_m1(19))
3286 rconst(20) = (rk_m1(20))
3287 rconst(21) = (rk_m1(21))
3288 rconst(22) = (rk_m1(22))
3289 rconst(23) = (rk_m1(23))
3290 rconst(24) = (rk_m1(24))
3291 rconst(25) = (rk_m1(25))
3292 rconst(26) = (rk_m1(26))
3293 rconst(27) = (rk_m1(27))
3294 rconst(28) = (rk_m1(28))
3295 rconst(29) = (rk_m1(29))
3296 rconst(30) = (rk_m1(30))
3297 rconst(31) = (rk_m1(31))
3298 rconst(32) = (rk_m1(32))
3299 rconst(33) = (rk_m1(33))
3300 rconst(34) = (rk_m1(34))
3301 rconst(35) = (rk_m1(35))
3302 rconst(36) = (rk_m1(36))
3303 rconst(37) = (rk_m1(37))
3304 rconst(38) = (rk_m1(38))
3305 rconst(39) = (rk_m1(39))
3306 rconst(40) = (rk_m1(40))
3307 rconst(41) = (rk_m1(41))
3308 rconst(42) = (rk_m1(42))
3309 rconst(43) = (rk_m1(43))
3310 rconst(44) = (rk_m1(44))
3311 rconst(45) = (rk_m1(45))
3312 rconst(46) = (rk_m1(46))
3313 rconst(47) = (rk_m1(47))
3314 rconst(48) = (rk_m1(48))
3315 rconst(49) = (rk_m1(49))
3316 rconst(50) = (rk_m1(50))
3317 rconst(51) = (rk_m1(51))
3318 rconst(52) = (rk_m1(52))
3319 rconst(53) = (rk_m1(53))
3320 rconst(54) = (rk_m1(54))
3321 rconst(55) = (rk_m1(55))
3322 rconst(56) = (rk_m1(56))
3323 rconst(57) = (rk_m1(57))
3324 rconst(58) = (rk_m1(58))
3325 rconst(59) = (rk_m1(59))
3326 rconst(60) = (rk_m1(60))
3327 rconst(61) = (rk_m1(61))
3328 rconst(62) = (rk_m1(62))
3329 rconst(63) = (rk_m1(63))
3330 rconst(64) = (rk_m1(64))
3331 rconst(65) = (rk_m1(65))
3332 rconst(66) = (rk_m2(2))
3333 rconst(67) = (rk_m2(3))
3334 rconst(68) = (rk_m2(4))
3335 rconst(69) = (rk_m2(31))
3336 rconst(70) = (rk_m2(32))
3337 rconst(71) = (rk_m2(34))
3338 rconst(72) = (rk_m2(39))
3339 rconst(73) = (rk_m2(44))
3340 rconst(74) = (rk_m2(49))
3341 rconst(75) = (rk_m2(1))
3342 rconst(76) = (rk_m2(5))
3343 rconst(77) = (rk_m2(6))
3344 rconst(78) = (rk_m2(7))
3345 rconst(79) = (rk_m2(8))
3346 rconst(80) = (rk_m2(9))
3347 rconst(81) = (rk_m2(10))
3348 rconst(82) = (rk_m2(11))
3349 rconst(83) = (rk_m2(12))
3350 rconst(84) = (rk_m2(13))
3351 rconst(85) = (rk_m2(14))
3352 rconst(86) = (rk_m2(15))
3353 rconst(87) = (rk_m2(16))
3354 rconst(88) = (rk_m2(17))
3355 rconst(89) = (rk_m2(18))
3356 rconst(90) = (rk_m2(19))
3357 rconst(91) = (rk_m2(20))
3358 rconst(92) = (rk_m2(21))
3359 rconst(93) = (rk_m2(22))
3360 rconst(94) = (rk_m2(23))
3361 rconst(95) = (rk_m2(24))
3362 rconst(96) = (rk_m2(25))
3363 rconst(97) = (rk_m2(26))
3364 rconst(98) = (rk_m2(27))
3365 rconst(99) = (rk_m2(28))
3366 rconst(100) = (rk_m2(29))
3367 rconst(101) = (rk_m2(30))
3368 rconst(102) = (rk_m2(33))
3369 rconst(103) = (rk_m2(35))
3370 rconst(104) = (rk_m2(36))
3371 rconst(105) = (rk_m2(37))
3372 rconst(106) = (rk_m2(38))
3373 rconst(107) = (rk_m2(40))
3374 rconst(108) = (rk_m2(41))
3375 rconst(109) = (rk_m2(42))
3376 rconst(110) = (rk_m2(43))
3377 rconst(111) = (rk_m2(45))
3378 rconst(112) = (rk_m2(46))
3379 rconst(113) = (rk_m2(47))
3380 rconst(114) = (rk_m2(48))
3381 rconst(115) = (rk_m2(50))
3382 rconst(116) = (rk_m2(51))
3383 rconst(117) = (rk_m2(52))
3384 rconst(118) = (rk_m2(53))
3385 rconst(119) = (rk_m3(1))
3386 rconst(120) = (rk_m3(2))
3387 rconst(121) = (rk_m3(3))
3388 rconst(122) = (rk_m3(4))
3389 rconst(123) = (rk_m3(5))
3390 rconst(124) = (rk_m3(6))
3391 rconst(125) = (rk_m3(7))
3392 rconst(126) = (rk_m3(8))
3393 rconst(127) = (rk_m3(9))
3394 rconst(128) = (rk_m3(10))
3395 rconst(129) = (rk_m3(11))
3396 rconst(130) = (rk_m3(12))
3397 rconst(131) = (rk_m3(13))
3398 rconst(132) = (rk_m3(14))
3399 rconst(133) = (rk_m3(15))
3400 rconst(134) = (rk_m3(16))
3402 end subroutine cbmz_v02r03_maprates
3405 !-----------------------------------------------------------------------------
3406 subroutine cbmz_v02r03_dydt( nvardum, tdum, v, a_var, f, rconst )
3408 ! computes rates of change for mechanism-version-regime = cbmz_v02r03
3410 use module_data_cbmz
3414 ! nvardum = number of variable species [input]
3416 ! tdum = time [input]
3418 ! v = concentrations of variable species [input]
3419 real v(nvar_r03_kpp)
3420 ! a_var = dydt for each species [output]
3421 real a_var(nvar_r03_kpp)
3422 ! f = concentrations of fixed species [input]
3423 real f(nfixed_kppmax)
3424 ! rconst = reaction rate constants [input]
3425 real rconst(nreact_r03_kpp)
3428 ! a = rate for each reaction
3429 real a(nreact_r03_kpp)
3431 ! computation of equation rates
3432 a(1) = rconst(1)*v(52)
3433 a(2) = rconst(2)*v(53)
3434 a(3) = rconst(3)*v(19)
3435 a(4) = rconst(4)*v(24)
3436 a(5) = rconst(5)*v(14)
3437 a(6) = rconst(6)*v(11)
3438 a(7) = rconst(7)*v(49)
3439 a(8) = rconst(8)*v(49)
3440 a(9) = rconst(9)*v(7)
3441 a(10) = rconst(10)*v(4)*f(4)
3442 a(11) = rconst(11)*v(4)*f(5)
3443 a(12) = rconst(12)*v(4)*f(2)
3444 a(13) = rconst(13)*v(22)*f(4)
3445 a(14) = rconst(14)*v(22)*v(49)
3446 a(15) = rconst(15)*v(22)*v(52)
3447 a(16) = rconst(16)*v(22)*v(52)
3448 a(17) = rconst(17)*v(22)*v(51)
3449 a(18) = rconst(18)*v(49)*v(51)
3450 a(19) = rconst(19)*v(49)*v(52)
3451 a(20) = rconst(20)*v(48)*v(49)
3452 a(21) = rconst(21)*v(49)*v(50)
3453 a(22) = rconst(22)*v(48)*f(3)
3454 a(23) = rconst(23)*v(48)*v(51)
3455 a(24) = rconst(24)*v(48)*v(52)
3456 a(25) = rconst(25)*v(48)*v(53)
3457 a(26) = rconst(26)*v(19)*v(48)
3458 a(27) = rconst(27)*v(24)*v(48)
3459 a(28) = rconst(28)*v(14)*v(48)
3460 a(29) = rconst(29)*v(48)*v(50)
3461 a(30) = rconst(30)*v(7)*v(48)
3462 a(31) = rconst(31)*v(50)*v(50)
3463 a(32) = rconst(32)*v(50)*v(50)*f(2)
3464 a(33) = rconst(33)*v(50)*v(51)
3465 a(34) = rconst(34)*v(50)*v(52)
3466 a(35) = rconst(35)*v(50)*v(52)
3467 a(36) = rconst(36)*v(14)
3468 a(37) = rconst(37)*v(51)*v(53)
3469 a(38) = rconst(38)*v(52)*v(53)
3470 a(39) = rconst(39)*v(52)*v(53)
3471 a(40) = rconst(40)*v(53)*v(53)
3472 a(41) = rconst(41)*v(50)*v(53)
3473 a(42) = rconst(42)*v(11)*f(2)
3474 a(43) = rconst(43)*v(11)
3475 a(44) = rconst(44)*v(25)*v(48)
3476 a(45) = rconst(45)*v(5)*v(48)
3477 a(46) = rconst(46)*v(48)*f(1)
3478 a(47) = rconst(47)*v(8)*v(48)
3479 a(48) = rconst(48)*v(21)*v(48)
3480 a(49) = rconst(49)*v(33)
3481 a(50) = rconst(50)*v(33)
3482 a(51) = rconst(51)*v(33)*v(48)
3483 a(52) = rconst(52)*v(33)*v(53)
3484 a(53) = rconst(53)*v(17)
3485 a(54) = rconst(54)*v(18)
3486 a(55) = rconst(55)*v(17)*v(48)
3487 a(56) = rconst(56)*v(18)*v(48)
3488 a(57) = rconst(57)*v(41)*v(51)
3489 a(58) = rconst(58)*v(39)*v(51)
3490 a(59) = rconst(59)*v(41)*v(53)
3491 a(60) = rconst(60)*v(39)*v(53)
3492 a(61) = rconst(61)*v(41)*v(50)
3493 a(62) = rconst(62)*v(39)*v(50)
3494 a(63) = rconst(63)*v(41)
3495 a(64) = rconst(64)*v(39)
3496 a(65) = rconst(65)*v(6)*v(48)
3497 a(66) = rconst(66)*v(40)
3498 a(67) = rconst(67)*v(40)*v(48)
3499 a(68) = rconst(68)*v(40)*v(53)
3500 a(69) = rconst(69)*v(47)*v(52)
3501 a(70) = rconst(70)*v(9)
3502 a(71) = rconst(71)*v(47)*v(51)
3503 a(72) = rconst(72)*v(47)*v(53)
3504 a(73) = rconst(73)*v(47)*v(50)
3505 a(74) = rconst(74)*v(47)
3506 a(75) = rconst(75)*v(26)*v(48)
3507 a(76) = rconst(76)*v(35)
3508 a(77) = rconst(77)*v(35)*v(48)
3509 a(78) = rconst(78)*v(38)
3510 a(79) = rconst(79)*v(38)*v(48)
3511 a(80) = rconst(80)*v(38)*v(53)
3512 a(81) = rconst(81)*v(20)*v(49)
3513 a(82) = rconst(82)*v(20)*v(48)
3514 a(83) = rconst(83)*v(31)*v(49)
3515 a(84) = rconst(84)*v(36)*v(49)
3516 a(85) = rconst(85)*v(31)*v(48)
3517 a(86) = rconst(86)*v(36)*v(48)
3518 a(87) = rconst(87)*v(31)*v(53)
3519 a(88) = rconst(88)*v(36)*v(53)
3520 a(89) = rconst(89)*v(10)*v(48)
3521 a(90) = rconst(90)*v(12)*v(48)
3522 a(91) = rconst(91)*v(15)*v(51)
3523 a(92) = rconst(92)*v(23)*v(48)
3524 a(93) = rconst(93)*v(23)*v(53)
3525 a(94) = rconst(94)*v(13)*v(52)
3526 a(95) = rconst(95)*v(27)*v(48)
3527 a(96) = rconst(96)*v(27)
3528 a(97) = rconst(97)*v(27)*v(49)
3529 a(98) = rconst(98)*v(44)
3530 a(99) = rconst(99)*v(44)*v(48)
3531 a(100) = rconst(100)*v(46)*v(48)
3532 a(101) = rconst(101)*v(46)
3533 a(102) = rconst(102)*v(45)*v(51)
3534 a(103) = rconst(103)*v(43)*v(51)
3535 a(104) = rconst(104)*v(37)*v(51)
3536 a(105) = rconst(105)*v(34)*v(51)
3537 a(106) = rconst(106)*v(45)*v(53)
3538 a(107) = rconst(107)*v(43)*v(53)
3539 a(108) = rconst(108)*v(37)*v(53)
3540 a(109) = rconst(109)*v(34)*v(53)
3541 a(110) = rconst(110)*v(45)*v(50)
3542 a(111) = rconst(111)*v(43)*v(50)
3543 a(112) = rconst(112)*v(37)*v(50)
3544 a(113) = rconst(113)*v(34)*v(50)
3545 a(114) = rconst(114)*v(45)
3546 a(115) = rconst(115)*v(43)
3547 a(116) = rconst(116)*v(37)
3548 a(117) = rconst(117)*v(34)
3549 a(118) = rconst(118)*v(16)*v(26)
3550 a(119) = rconst(119)*v(32)*v(48)
3551 a(120) = rconst(120)*v(32)*v(49)
3552 a(121) = rconst(121)*v(32)*v(53)
3553 a(122) = rconst(122)*v(42)
3554 a(123) = rconst(123)*v(42)*v(48)
3555 a(124) = rconst(124)*v(42)*v(49)
3556 a(125) = rconst(125)*v(42)*v(53)
3557 a(126) = rconst(126)*v(29)*v(51)
3558 a(127) = rconst(127)*v(28)*v(51)
3559 a(128) = rconst(128)*v(30)*v(51)
3560 a(129) = rconst(129)*v(29)*v(50)
3561 a(130) = rconst(130)*v(28)*v(50)
3562 a(131) = rconst(131)*v(30)*v(50)
3563 a(132) = rconst(132)*v(29)
3564 a(133) = rconst(133)*v(28)
3565 a(134) = rconst(134)*v(30)
3567 ! aggregate function
3569 a_var(2) = 0.52*a(81)+0.22*a(83)+0.39*a(120)+0.46*a(124)
3570 a_var(3) = 0.4*a(73)+0.09*a(83)+0.16*a(84)
3571 a_var(4) = a(8)-a(10)-a(11)-a(12)
3574 a_var(7) = -a(9)-a(30)+a(31)+a(32)
3575 a_var(8) = -a(47)+0.2*a(64)
3576 a_var(9) = a(69)-a(70)
3578 a_var(11) = -a(6)+a(39)-a(42)-a(43)
3580 a_var(13) = 0.4*a(92)+a(93)-a(94)
3581 a_var(14) = -a(5)-a(28)+a(34)-a(36)
3582 a_var(15) = 0.8*a(89)+0.45*a(90)-a(91)
3583 a_var(16) = 1.06*a(83)+2.26*a(84)+a(85)+2.23*a(86)+1.98*a(98) &
3584 +0.42*a(99)+1.98*a(101)+1.68*a(102)+a(104)+1.98 &
3585 *a(106)+a(108)+1.25*a(114)+a(116)-a(118)
3586 a_var(17) = -a(53)-a(55)+a(61)
3587 a_var(18) = -a(54)-a(56)+a(62)
3588 a_var(19) = -a(3)+a(23)-a(26)+a(35)
3589 a_var(20) = -a(81)-a(82)
3590 a_var(21) = -a(48)+0.34*a(63)+0.03*a(83)+0.04*a(84)
3591 a_var(22) = a(1)+0.89*a(2)+a(7)+a(10)+a(11)-a(13)-a(14)-a(15) &
3593 a_var(23) = 0.12*a(89)+0.05*a(90)-a(92)-a(93)
3594 a_var(24) = -a(4)+a(24)-a(27)+0.3*a(41)+2*a(42)+a(52)+a(68) &
3595 +a(80)+a(93)+0.07*a(125)
3596 a_var(25) = -a(44)+a(49)+a(50)+a(51)+a(52)+a(66)+a(78)+a(80) &
3597 +0.24*a(81)+0.31*a(83)+0.3*a(84)+2*a(95)+a(96)+0.69 &
3598 *a(97)+0.07*a(120)+0.33*a(122)+0.16*a(124)+0.64 &
3600 a_var(26) = -a(75)+1.1*a(90)-a(118)+1.86*a(125)+0.18*a(126)+1.6 &
3601 *a(127)+2*a(130)+2*a(133)
3602 a_var(27) = 0.95*a(91)+0.3*a(92)-a(95)-a(96)-a(97)
3603 a_var(28) = a(121)-a(127)-a(130)-a(133)
3604 a_var(29) = a(119)-a(126)-a(129)-a(132)
3605 a_var(30) = 0.5*a(123)-a(128)-a(131)-a(134)
3606 a_var(31) = -a(83)-a(85)-a(87)
3607 a_var(32) = -a(119)-a(120)-a(121)
3608 a_var(33) = a(48)-a(49)-a(50)-a(51)-a(52)+a(53)+0.3*a(55)+a(57) &
3609 +a(59)+0.66*a(63)+a(81)+1.56*a(82)+0.57*a(83)+a(85) &
3610 +a(95)+0.7*a(97)+a(103)+0.5*a(104)+a(107)+0.5*a(108) &
3611 +0.7*a(115)+0.5*a(116)+0.6*a(120)+0.2*a(122)+0.15 &
3612 *a(124)+0.28*a(125)+0.63*a(126)+0.25*a(128)
3613 a_var(34) = a(79)+a(82)+a(85)+a(86)+0.08*a(89)+0.5*a(90)+0.6 &
3614 *a(92)+a(95)+0.03*a(97)+0.4*a(98)+0.4*a(101)+0.34 &
3615 *a(102)-a(105)+0.4*a(106)-a(109)-a(113)+0.24*a(114) &
3616 -a(117)+0.08*a(119)+0.2*a(120)+0.2*a(123)+0.07*a(124) &
3618 a_var(35) = -a(76)-a(77)+0.07*a(84)+0.23*a(86)+0.74*a(98)+0.74 &
3619 *a(101)+0.62*a(102)+0.74*a(106)+0.57*a(114)+0.15 &
3620 *a(115)+0.03*a(122)+0.09*a(124)+0.63*a(128)+0.5 &
3622 a_var(36) = -a(84)-a(86)-a(88)
3623 a_var(37) = a(87)+a(88)+a(100)-a(104)-a(108)-a(112)-a(116)
3624 a_var(38) = -a(78)-a(79)-a(80)+0.04*a(83)+0.07*a(84)+0.8*a(90) &
3625 +0.2*a(97)+0.19*a(99)+0.15*a(115)+0.85*a(124)+0.34 &
3627 a_var(39) = a(47)+0.5*a(56)-a(58)-a(60)-a(62)-a(64)+0.06*a(83) &
3628 +0.05*a(84)+0.1*a(98)+0.1*a(101)+0.08*a(102)+0.1 &
3630 a_var(40) = a(54)+0.5*a(56)+a(58)+a(60)+0.8*a(64)+a(65)-a(66) &
3631 -a(67)-a(68)+0.22*a(82)+0.47*a(83)+1.03*a(84)+a(85) &
3632 +1.77*a(86)+0.03*a(97)+0.3*a(98)+0.04*a(99)+0.3 &
3633 *a(101)+0.25*a(102)+0.5*a(104)+0.3*a(106)+0.5*a(108) &
3634 +0.21*a(114)+0.5*a(116)+0.15*a(120)+0.07*a(122)+0.02 &
3635 *a(124)+0.28*a(125)+0.8*a(127)+0.55*a(128)+a(133)+0.5 &
3637 a_var(41) = a(46)+0.7*a(55)-a(57)-a(59)-a(61)-a(63)+a(66)+a(71) &
3638 +a(72)+a(74)+a(76)+0.07*a(83)+0.1*a(84)+0.7*a(122) &
3640 a_var(42) = 0.65*a(120)-a(122)-a(123)-a(124)-a(125)+0.91*a(126) &
3642 a_var(43) = a(77)+0.11*a(84)-a(103)-a(107)-a(111)-a(115)
3643 a_var(44) = -a(98)-a(99)+a(110)+a(111)+a(129)+a(131)
3644 a_var(45) = a(75)+0.03*a(83)+0.09*a(84)+0.77*a(99)-a(102)-a(106) &
3646 a_var(46) = 0.05*a(91)+a(94)-a(100)-a(101)+0.16*a(102)+0.5 &
3647 *a(104)+0.5*a(108)+a(112)+0.5*a(116)+0.93*a(125)+0.09 &
3648 *a(126)+0.8*a(127)+a(130)+a(133)
3649 a_var(47) = a(67)+a(68)-a(69)+a(70)-a(71)-a(72)-a(73)-a(74) &
3650 +a(76)+a(78)+a(79)+a(80)+0.13*a(83)+0.19*a(84)+a(95) &
3651 +a(96)+0.62*a(97)+a(103)+a(107)+0.7*a(115)+0.2*a(120) &
3652 +0.97*a(122)+0.5*a(123)+0.11*a(124)+0.07*a(125)
3653 a_var(48) = a(3)+a(4)+2*a(9)+2*a(12)-a(20)+a(21)-a(22)-a(23) &
3654 -a(24)-a(25)-a(26)-a(27)-a(28)-a(29)-a(30)+a(33)+0.7 &
3655 *a(41)-a(44)-a(45)-a(46)-a(47)-a(48)-a(51)+a(53) &
3656 +a(54)-0.7*a(55)-0.5*a(56)-a(65)-a(67)-a(75)-a(77) &
3657 -a(79)+0.12*a(81)-a(82)+0.33*a(83)+0.6*a(84)-a(85) &
3658 -a(86)-a(89)-a(90)-a(92)-a(95)+0.08*a(97)+a(98)-0.77 &
3659 *a(99)-a(100)-a(119)+0.27*a(120)-a(123)+0.27*a(124)
3660 a_var(49) = -a(7)-a(8)+a(13)-a(14)-a(18)-a(19)-a(20)-a(21)+0.4 &
3661 *a(73)-a(81)-a(83)-a(84)-a(97)-a(120)-a(124)
3662 a_var(50) = a(5)+a(20)-a(21)+a(22)+a(25)-a(29)+a(30)-2*a(31)-2 &
3663 *a(32)-a(33)-a(34)-a(35)+a(36)-a(41)+a(44)+a(45) &
3664 +a(48)+2*a(49)+a(51)+a(52)+a(53)+a(54)+a(57)+a(58) &
3665 +a(59)+a(60)-a(61)-a(62)+0.32*a(63)+0.6*a(64)+a(65) &
3666 +a(66)-a(73)+a(78)+0.22*a(81)+a(82)+0.26*a(83)+0.22 &
3667 *a(84)+a(85)+a(86)+0.2*a(89)+0.55*a(90)+0.95*a(91) &
3668 +0.6*a(92)+2*a(95)+a(96)+0.76*a(97)+0.9*a(98)+0.9 &
3669 *a(101)+0.76*a(102)+0.5*a(104)+0.9*a(106)+0.5*a(108) &
3670 -a(110)-a(111)-a(112)-a(113)+0.54*a(114)+0.07*a(120) &
3671 +0.33*a(122)+0.1*a(124)+0.93*a(125)+0.91*a(126)+0.8 &
3672 *a(127)+a(128)-a(129)-a(130)-a(131)
3673 a_var(51) = a(1)+0.11*a(2)+a(3)+a(15)-a(17)-a(18)-a(23)-a(33) &
3674 -a(37)+a(38)-a(57)-a(58)-a(71)-a(91)-a(102)-a(103) &
3675 -a(104)-a(105)-a(126)-a(127)-a(128)
3676 a_var(52) = -a(1)+0.89*a(2)+a(4)+a(5)+a(6)-a(15)-a(16)+a(17) &
3677 +a(18)-a(19)-a(24)+a(25)+a(26)+a(28)+a(33)-a(34) &
3678 -a(35)+a(36)+2*a(37)-a(39)+2*a(40)+0.7*a(41)+a(43) &
3679 +a(57)+a(58)+a(59)+a(60)-a(69)+a(70)+a(71)+a(72)+0.95 &
3680 *a(91)-a(94)+a(101)+0.84*a(102)+a(103)+1.5*a(104) &
3681 +a(105)+a(106)+a(107)+1.5*a(108)+a(109)+0.5*a(116) &
3682 +0.91*a(126)+1.2*a(127)+a(128)
3683 a_var(53) = -a(2)+a(6)+a(16)+a(19)-a(25)+a(27)-a(37)-a(38)-a(39) &
3684 -2*a(40)-a(41)+a(43)-a(52)-a(59)-a(60)-a(68)-a(72) &
3685 -a(80)-a(87)-a(88)-a(93)-a(106)-a(107)-a(108)-a(109) &
3688 end subroutine cbmz_v02r03_dydt
3691 !-----------------------------------------------------------------------------
3692 subroutine cbmz_v02r03_jacob( nvardum, tdum, v, jvs, f, rconst )
3694 ! computes jacobian for mechanism-version-regime = cbmz_v02r03
3696 use module_data_cbmz
3700 ! nvardum = number of variable species [input]
3702 ! tdum = time [input]
3704 ! v = concentrations of variable species [input]
3705 real v(nvar_r03_kpp)
3706 ! jvs = non-zero jacobian elements [output]
3707 real jvs(lu_nonzero_v_r03_kpp)
3708 ! f = concentrations of fixed species [input]
3709 real f(nfixed_kppmax)
3710 ! rconst = reaction rate constants [input]
3711 real rconst(nreact_r03_kpp)
3714 ! b(i,j) = d[reaction_rate(i)] / d[species_conc(j)]
3715 real b(nreact_r03_kpp,nvar_r03_kpp)
3717 ! computation of b(i,j) = da(i)/dv(j)
3727 b(10,4) = rconst(10)*f(4)
3728 b(11,4) = rconst(11)*f(5)
3729 b(12,4) = rconst(12)*f(2)
3730 b(13,22) = rconst(13)*f(4)
3731 b(14,22) = rconst(14)*v(49)
3732 b(14,49) = rconst(14)*v(22)
3733 b(15,22) = rconst(15)*v(52)
3734 b(15,52) = rconst(15)*v(22)
3735 b(16,22) = rconst(16)*v(52)
3736 b(16,52) = rconst(16)*v(22)
3737 b(17,22) = rconst(17)*v(51)
3738 b(17,51) = rconst(17)*v(22)
3739 b(18,49) = rconst(18)*v(51)
3740 b(18,51) = rconst(18)*v(49)
3741 b(19,49) = rconst(19)*v(52)
3742 b(19,52) = rconst(19)*v(49)
3743 b(20,48) = rconst(20)*v(49)
3744 b(20,49) = rconst(20)*v(48)
3745 b(21,49) = rconst(21)*v(50)
3746 b(21,50) = rconst(21)*v(49)
3747 b(22,48) = rconst(22)*f(3)
3748 b(23,48) = rconst(23)*v(51)
3749 b(23,51) = rconst(23)*v(48)
3750 b(24,48) = rconst(24)*v(52)
3751 b(24,52) = rconst(24)*v(48)
3752 b(25,48) = rconst(25)*v(53)
3753 b(25,53) = rconst(25)*v(48)
3754 b(26,19) = rconst(26)*v(48)
3755 b(26,48) = rconst(26)*v(19)
3756 b(27,24) = rconst(27)*v(48)
3757 b(27,48) = rconst(27)*v(24)
3758 b(28,14) = rconst(28)*v(48)
3759 b(28,48) = rconst(28)*v(14)
3760 b(29,48) = rconst(29)*v(50)
3761 b(29,50) = rconst(29)*v(48)
3762 b(30,7) = rconst(30)*v(48)
3763 b(30,48) = rconst(30)*v(7)
3764 b(31,50) = rconst(31)*2*v(50)
3765 b(32,50) = rconst(32)*2*v(50)*f(2)
3766 b(33,50) = rconst(33)*v(51)
3767 b(33,51) = rconst(33)*v(50)
3768 b(34,50) = rconst(34)*v(52)
3769 b(34,52) = rconst(34)*v(50)
3770 b(35,50) = rconst(35)*v(52)
3771 b(35,52) = rconst(35)*v(50)
3772 b(36,14) = rconst(36)
3773 b(37,51) = rconst(37)*v(53)
3774 b(37,53) = rconst(37)*v(51)
3775 b(38,52) = rconst(38)*v(53)
3776 b(38,53) = rconst(38)*v(52)
3777 b(39,52) = rconst(39)*v(53)
3778 b(39,53) = rconst(39)*v(52)
3779 b(40,53) = rconst(40)*2*v(53)
3780 b(41,50) = rconst(41)*v(53)
3781 b(41,53) = rconst(41)*v(50)
3782 b(42,11) = rconst(42)*f(2)
3783 b(43,11) = rconst(43)
3784 b(44,25) = rconst(44)*v(48)
3785 b(44,48) = rconst(44)*v(25)
3786 b(45,5) = rconst(45)*v(48)
3787 b(45,48) = rconst(45)*v(5)
3788 b(46,48) = rconst(46)*f(1)
3789 b(47,8) = rconst(47)*v(48)
3790 b(47,48) = rconst(47)*v(8)
3791 b(48,21) = rconst(48)*v(48)
3792 b(48,48) = rconst(48)*v(21)
3793 b(49,33) = rconst(49)
3794 b(50,33) = rconst(50)
3795 b(51,33) = rconst(51)*v(48)
3796 b(51,48) = rconst(51)*v(33)
3797 b(52,33) = rconst(52)*v(53)
3798 b(52,53) = rconst(52)*v(33)
3799 b(53,17) = rconst(53)
3800 b(54,18) = rconst(54)
3801 b(55,17) = rconst(55)*v(48)
3802 b(55,48) = rconst(55)*v(17)
3803 b(56,18) = rconst(56)*v(48)
3804 b(56,48) = rconst(56)*v(18)
3805 b(57,41) = rconst(57)*v(51)
3806 b(57,51) = rconst(57)*v(41)
3807 b(58,39) = rconst(58)*v(51)
3808 b(58,51) = rconst(58)*v(39)
3809 b(59,41) = rconst(59)*v(53)
3810 b(59,53) = rconst(59)*v(41)
3811 b(60,39) = rconst(60)*v(53)
3812 b(60,53) = rconst(60)*v(39)
3813 b(61,41) = rconst(61)*v(50)
3814 b(61,50) = rconst(61)*v(41)
3815 b(62,39) = rconst(62)*v(50)
3816 b(62,50) = rconst(62)*v(39)
3817 b(63,41) = rconst(63)
3818 b(64,39) = rconst(64)
3819 b(65,6) = rconst(65)*v(48)
3820 b(65,48) = rconst(65)*v(6)
3821 b(66,40) = rconst(66)
3822 b(67,40) = rconst(67)*v(48)
3823 b(67,48) = rconst(67)*v(40)
3824 b(68,40) = rconst(68)*v(53)
3825 b(68,53) = rconst(68)*v(40)
3826 b(69,47) = rconst(69)*v(52)
3827 b(69,52) = rconst(69)*v(47)
3828 b(70,9) = rconst(70)
3829 b(71,47) = rconst(71)*v(51)
3830 b(71,51) = rconst(71)*v(47)
3831 b(72,47) = rconst(72)*v(53)
3832 b(72,53) = rconst(72)*v(47)
3833 b(73,47) = rconst(73)*v(50)
3834 b(73,50) = rconst(73)*v(47)
3835 b(74,47) = rconst(74)
3836 b(75,26) = rconst(75)*v(48)
3837 b(75,48) = rconst(75)*v(26)
3838 b(76,35) = rconst(76)
3839 b(77,35) = rconst(77)*v(48)
3840 b(77,48) = rconst(77)*v(35)
3841 b(78,38) = rconst(78)
3842 b(79,38) = rconst(79)*v(48)
3843 b(79,48) = rconst(79)*v(38)
3844 b(80,38) = rconst(80)*v(53)
3845 b(80,53) = rconst(80)*v(38)
3846 b(81,20) = rconst(81)*v(49)
3847 b(81,49) = rconst(81)*v(20)
3848 b(82,20) = rconst(82)*v(48)
3849 b(82,48) = rconst(82)*v(20)
3850 b(83,31) = rconst(83)*v(49)
3851 b(83,49) = rconst(83)*v(31)
3852 b(84,36) = rconst(84)*v(49)
3853 b(84,49) = rconst(84)*v(36)
3854 b(85,31) = rconst(85)*v(48)
3855 b(85,48) = rconst(85)*v(31)
3856 b(86,36) = rconst(86)*v(48)
3857 b(86,48) = rconst(86)*v(36)
3858 b(87,31) = rconst(87)*v(53)
3859 b(87,53) = rconst(87)*v(31)
3860 b(88,36) = rconst(88)*v(53)
3861 b(88,53) = rconst(88)*v(36)
3862 b(89,10) = rconst(89)*v(48)
3863 b(89,48) = rconst(89)*v(10)
3864 b(90,12) = rconst(90)*v(48)
3865 b(90,48) = rconst(90)*v(12)
3866 b(91,15) = rconst(91)*v(51)
3867 b(91,51) = rconst(91)*v(15)
3868 b(92,23) = rconst(92)*v(48)
3869 b(92,48) = rconst(92)*v(23)
3870 b(93,23) = rconst(93)*v(53)
3871 b(93,53) = rconst(93)*v(23)
3872 b(94,13) = rconst(94)*v(52)
3873 b(94,52) = rconst(94)*v(13)
3874 b(95,27) = rconst(95)*v(48)
3875 b(95,48) = rconst(95)*v(27)
3876 b(96,27) = rconst(96)
3877 b(97,27) = rconst(97)*v(49)
3878 b(97,49) = rconst(97)*v(27)
3879 b(98,44) = rconst(98)
3880 b(99,44) = rconst(99)*v(48)
3881 b(99,48) = rconst(99)*v(44)
3882 b(100,46) = rconst(100)*v(48)
3883 b(100,48) = rconst(100)*v(46)
3884 b(101,46) = rconst(101)
3885 b(102,45) = rconst(102)*v(51)
3886 b(102,51) = rconst(102)*v(45)
3887 b(103,43) = rconst(103)*v(51)
3888 b(103,51) = rconst(103)*v(43)
3889 b(104,37) = rconst(104)*v(51)
3890 b(104,51) = rconst(104)*v(37)
3891 b(105,34) = rconst(105)*v(51)
3892 b(105,51) = rconst(105)*v(34)
3893 b(106,45) = rconst(106)*v(53)
3894 b(106,53) = rconst(106)*v(45)
3895 b(107,43) = rconst(107)*v(53)
3896 b(107,53) = rconst(107)*v(43)
3897 b(108,37) = rconst(108)*v(53)
3898 b(108,53) = rconst(108)*v(37)
3899 b(109,34) = rconst(109)*v(53)
3900 b(109,53) = rconst(109)*v(34)
3901 b(110,45) = rconst(110)*v(50)
3902 b(110,50) = rconst(110)*v(45)
3903 b(111,43) = rconst(111)*v(50)
3904 b(111,50) = rconst(111)*v(43)
3905 b(112,37) = rconst(112)*v(50)
3906 b(112,50) = rconst(112)*v(37)
3907 b(113,34) = rconst(113)*v(50)
3908 b(113,50) = rconst(113)*v(34)
3909 b(114,45) = rconst(114)
3910 b(115,43) = rconst(115)
3911 b(116,37) = rconst(116)
3912 b(117,34) = rconst(117)
3913 b(118,16) = rconst(118)*v(26)
3914 b(118,26) = rconst(118)*v(16)
3915 b(119,32) = rconst(119)*v(48)
3916 b(119,48) = rconst(119)*v(32)
3917 b(120,32) = rconst(120)*v(49)
3918 b(120,49) = rconst(120)*v(32)
3919 b(121,32) = rconst(121)*v(53)
3920 b(121,53) = rconst(121)*v(32)
3921 b(122,42) = rconst(122)
3922 b(123,42) = rconst(123)*v(48)
3923 b(123,48) = rconst(123)*v(42)
3924 b(124,42) = rconst(124)*v(49)
3925 b(124,49) = rconst(124)*v(42)
3926 b(125,42) = rconst(125)*v(53)
3927 b(125,53) = rconst(125)*v(42)
3928 b(126,29) = rconst(126)*v(51)
3929 b(126,51) = rconst(126)*v(29)
3930 b(127,28) = rconst(127)*v(51)
3931 b(127,51) = rconst(127)*v(28)
3932 b(128,30) = rconst(128)*v(51)
3933 b(128,51) = rconst(128)*v(30)
3934 b(129,29) = rconst(129)*v(50)
3935 b(129,50) = rconst(129)*v(29)
3936 b(130,28) = rconst(130)*v(50)
3937 b(130,50) = rconst(130)*v(28)
3938 b(131,30) = rconst(131)*v(50)
3939 b(131,50) = rconst(131)*v(30)
3940 b(132,29) = rconst(132)
3941 b(133,28) = rconst(133)
3942 b(134,30) = rconst(134)
3944 ! construct the jacobian terms from b's
3949 jvs(5) = 0.52*b(81,20)
3950 jvs(6) = 0.22*b(83,31)
3951 jvs(7) = 0.39*b(120,32)
3952 jvs(8) = 0.46*b(124,42)
3953 jvs(9) = 0.52*b(81,49)+0.22*b(83,49)+0.39*b(120,49)+0.46 &
3956 jvs(11) = 0.09*b(83,31)
3957 jvs(12) = 0.16*b(84,36)
3958 jvs(13) = 0.4*b(73,47)
3959 jvs(14) = 0.09*b(83,49)+0.16*b(84,49)
3960 jvs(15) = 0.4*b(73,50)
3961 jvs(16) = -b(10,4)-b(11,4)-b(12,4)
3967 jvs(22) = -b(9,7)-b(30,7)
3969 jvs(24) = b(31,50)+b(32,50)
3971 jvs(26) = 0.2*b(64,39)
3978 jvs(33) = -b(6,11)-b(42,11)-b(43,11)
3984 jvs(39) = 0.4*b(92,23)+b(93,23)
3985 jvs(40) = 0.4*b(92,48)
3988 jvs(43) = -b(5,14)-b(28,14)-b(36,14)
3992 jvs(47) = 0.8*b(89,10)
3993 jvs(48) = 0.45*b(90,12)
3995 jvs(50) = 0.8*b(89,48)+0.45*b(90,48)
3997 jvs(52) = -b(118,16)
3998 jvs(53) = -b(118,26)
3999 jvs(54) = 1.06*b(83,31)+b(85,31)
4000 jvs(55) = 2.26*b(84,36)+2.23*b(86,36)
4001 jvs(56) = b(104,37)+b(108,37)+b(116,37)
4002 jvs(57) = 1.98*b(98,44)+0.42*b(99,44)
4003 jvs(58) = 1.68*b(102,45)+1.98*b(106,45)+1.25*b(114,45)
4004 jvs(59) = 1.98*b(101,46)
4005 jvs(60) = b(85,48)+2.23*b(86,48)+0.42*b(99,48)
4006 jvs(61) = 1.06*b(83,49)+2.26*b(84,49)
4007 jvs(62) = 1.68*b(102,51)+b(104,51)
4008 jvs(63) = 1.98*b(106,53)+b(108,53)
4009 jvs(64) = -b(53,17)-b(55,17)
4013 jvs(68) = -b(54,18)-b(56,18)
4017 jvs(72) = -b(3,19)-b(26,19)
4018 jvs(73) = b(23,48)-b(26,48)
4022 jvs(77) = -b(81,20)-b(82,20)
4026 jvs(81) = 0.03*b(83,31)
4027 jvs(82) = 0.04*b(84,36)
4028 jvs(83) = 0.34*b(63,41)
4030 jvs(85) = 0.03*b(83,49)+0.04*b(84,49)
4031 jvs(86) = b(10,4)+b(11,4)
4032 jvs(87) = -b(13,22)-b(14,22)-b(15,22)-b(16,22)-b(17,22)
4033 jvs(88) = b(7,49)-b(14,49)
4035 jvs(90) = b(1,52)-b(15,52)-b(16,52)
4036 jvs(91) = 0.89*b(2,53)
4037 jvs(92) = 0.12*b(89,10)
4038 jvs(93) = 0.05*b(90,12)
4039 jvs(94) = -b(92,23)-b(93,23)
4040 jvs(95) = 0.12*b(89,48)+0.05*b(90,48)-b(92,48)
4042 jvs(97) = 2*b(42,11)
4044 jvs(99) = -b(4,24)-b(27,24)
4048 jvs(103) = 0.07*b(125,42)
4049 jvs(104) = b(24,48)-b(27,48)
4050 jvs(105) = 0.3*b(41,50)
4052 jvs(107) = 0.3*b(41,53)+b(52,53)+b(68,53)+b(80,53)+b(93,53)+0.07 &
4054 jvs(108) = 0.24*b(81,20)
4055 jvs(109) = -b(44,25)
4056 jvs(110) = 2*b(95,27)+b(96,27)+0.69*b(97,27)
4057 jvs(111) = 0.59*b(128,30)
4058 jvs(112) = 0.31*b(83,31)
4059 jvs(113) = 0.07*b(120,32)
4060 jvs(114) = b(49,33)+b(50,33)+b(51,33)+b(52,33)
4061 jvs(115) = 0.3*b(84,36)
4062 jvs(116) = b(78,38)+b(80,38)
4064 jvs(118) = 0.33*b(122,42)+0.16*b(124,42)+0.64*b(125,42)
4065 jvs(119) = -b(44,48)+b(51,48)+2*b(95,48)
4066 jvs(120) = 0.24*b(81,49)+0.31*b(83,49)+0.3*b(84,49)+0.69 &
4067 *b(97,49)+0.07*b(120,49)+0.16*b(124,49)
4068 jvs(121) = 0.59*b(128,51)
4069 jvs(122) = b(52,53)+b(80,53)+0.64*b(125,53)
4070 jvs(123) = 1.1*b(90,12)
4071 jvs(124) = -b(118,16)
4072 jvs(125) = -b(75,26)-b(118,26)
4073 jvs(126) = 1.6*b(127,28)+2*b(130,28)+2*b(133,28)
4074 jvs(127) = 0.18*b(126,29)
4078 jvs(131) = 1.86*b(125,42)
4082 jvs(135) = -b(75,48)+1.1*b(90,48)
4084 jvs(137) = 2*b(130,50)
4085 jvs(138) = 0.18*b(126,51)+1.6*b(127,51)
4086 jvs(139) = 1.86*b(125,53)
4087 jvs(140) = 0.95*b(91,15)
4088 jvs(141) = 0.3*b(92,23)
4089 jvs(142) = -b(95,27)-b(96,27)-b(97,27)
4090 jvs(143) = 0.3*b(92,48)-b(95,48)
4091 jvs(144) = -b(97,49)
4092 jvs(145) = 0.95*b(91,51)
4094 jvs(147) = -b(127,28)-b(130,28)-b(133,28)
4095 jvs(148) = b(121,32)
4096 jvs(149) = -b(130,50)
4097 jvs(150) = -b(127,51)
4098 jvs(151) = b(121,53)
4099 jvs(152) = -b(126,29)-b(129,29)-b(132,29)
4100 jvs(153) = b(119,32)
4101 jvs(154) = b(119,48)
4102 jvs(155) = -b(129,50)
4103 jvs(156) = -b(126,51)
4104 jvs(157) = -b(128,30)-b(131,30)-b(134,30)
4105 jvs(158) = 0.5*b(123,42)
4106 jvs(159) = 0.5*b(123,48)
4107 jvs(160) = -b(131,50)
4108 jvs(161) = -b(128,51)
4109 jvs(162) = -b(83,31)-b(85,31)-b(87,31)
4110 jvs(163) = -b(85,48)
4111 jvs(164) = -b(83,49)
4112 jvs(165) = -b(87,53)
4113 jvs(166) = -b(119,32)-b(120,32)-b(121,32)
4114 jvs(167) = -b(119,48)
4115 jvs(168) = -b(120,49)
4116 jvs(169) = -b(121,53)
4117 jvs(170) = b(53,17)+0.3*b(55,17)
4118 jvs(171) = b(81,20)+1.56*b(82,20)
4120 jvs(173) = b(95,27)+0.7*b(97,27)
4121 jvs(174) = 0.63*b(126,29)
4122 jvs(175) = 0.25*b(128,30)
4123 jvs(176) = 0.57*b(83,31)+b(85,31)
4124 jvs(177) = 0.6*b(120,32)
4125 jvs(178) = -b(49,33)-b(50,33)-b(51,33)-b(52,33)
4127 jvs(180) = 0.5*b(104,37)+0.5*b(108,37)+0.5*b(116,37)
4128 jvs(181) = b(57,41)+b(59,41)+0.66*b(63,41)
4129 jvs(182) = 0.2*b(122,42)+0.15*b(124,42)+0.28*b(125,42)
4130 jvs(183) = b(103,43)+b(107,43)+0.7*b(115,43)
4131 jvs(184) = b(48,48)-b(51,48)+0.3*b(55,48)+1.56*b(82,48)+b(85,48) &
4133 jvs(185) = b(81,49)+0.57*b(83,49)+0.7*b(97,49)+0.6*b(120,49) &
4136 jvs(187) = b(57,51)+b(103,51)+0.5*b(104,51)+0.63*b(126,51)+0.25 &
4138 jvs(188) = -b(52,53)+b(59,53)+b(107,53)+0.5*b(108,53)+0.28 &
4140 jvs(189) = 0.08*b(89,10)
4141 jvs(190) = 0.5*b(90,12)
4143 jvs(192) = 0.6*b(92,23)
4144 jvs(193) = b(95,27)+0.03*b(97,27)
4146 jvs(195) = 0.08*b(119,32)+0.2*b(120,32)
4147 jvs(196) = -b(105,34)-b(109,34)-b(113,34)-b(117,34)
4150 jvs(199) = 0.2*b(123,42)+0.07*b(124,42)+0.93*b(125,42)
4151 jvs(200) = 0.4*b(98,44)
4152 jvs(201) = 0.34*b(102,45)+0.4*b(106,45)+0.24*b(114,45)
4153 jvs(202) = 0.4*b(101,46)
4154 jvs(203) = b(79,48)+b(82,48)+b(85,48)+b(86,48)+0.08*b(89,48)+0.5 &
4155 *b(90,48)+0.6*b(92,48)+b(95,48)+0.08*b(119,48)+0.2 &
4157 jvs(204) = 0.03*b(97,49)+0.2*b(120,49)+0.07*b(124,49)
4158 jvs(205) = -b(113,50)
4159 jvs(206) = 0.34*b(102,51)-b(105,51)
4160 jvs(207) = 0.4*b(106,53)-b(109,53)+0.93*b(125,53)
4161 jvs(208) = 0.63*b(128,30)+0.5*b(134,30)
4162 jvs(209) = -b(76,35)-b(77,35)
4163 jvs(210) = 0.07*b(84,36)+0.23*b(86,36)
4164 jvs(211) = 0.03*b(122,42)+0.09*b(124,42)
4165 jvs(212) = 0.15*b(115,43)
4166 jvs(213) = 0.74*b(98,44)
4167 jvs(214) = 0.62*b(102,45)+0.74*b(106,45)+0.57*b(114,45)
4168 jvs(215) = 0.74*b(101,46)
4169 jvs(216) = -b(77,48)+0.23*b(86,48)
4170 jvs(217) = 0.07*b(84,49)+0.09*b(124,49)
4172 jvs(219) = 0.62*b(102,51)+0.63*b(128,51)
4173 jvs(220) = 0.74*b(106,53)
4174 jvs(221) = -b(84,36)-b(86,36)-b(88,36)
4175 jvs(222) = -b(86,48)
4176 jvs(223) = -b(84,49)
4177 jvs(224) = -b(88,53)
4180 jvs(227) = -b(104,37)-b(108,37)-b(112,37)-b(116,37)
4181 jvs(228) = b(100,46)
4182 jvs(229) = b(100,48)
4184 jvs(231) = -b(112,50)
4185 jvs(232) = -b(104,51)
4186 jvs(233) = b(87,53)+b(88,53)-b(108,53)
4187 jvs(234) = 0.8*b(90,12)
4188 jvs(235) = 0.2*b(97,27)
4189 jvs(236) = 0.34*b(128,30)
4190 jvs(237) = 0.04*b(83,31)
4191 jvs(238) = 0.07*b(84,36)
4192 jvs(239) = -b(78,38)-b(79,38)-b(80,38)
4193 jvs(240) = 0.85*b(124,42)
4194 jvs(241) = 0.15*b(115,43)
4195 jvs(242) = 0.19*b(99,44)
4196 jvs(243) = -b(79,48)+0.8*b(90,48)+0.19*b(99,48)
4197 jvs(244) = 0.04*b(83,49)+0.07*b(84,49)+0.2*b(97,49)+0.85 &
4200 jvs(246) = 0.34*b(128,51)
4201 jvs(247) = -b(80,53)
4203 jvs(249) = 0.5*b(56,18)
4204 jvs(250) = 0.06*b(83,31)
4205 jvs(251) = 0.05*b(84,36)
4206 jvs(252) = -b(58,39)-b(60,39)-b(62,39)-b(64,39)
4207 jvs(253) = 0.1*b(98,44)
4208 jvs(254) = 0.08*b(102,45)+0.1*b(106,45)+0.06*b(114,45)
4209 jvs(255) = 0.1*b(101,46)
4210 jvs(256) = b(47,48)+0.5*b(56,48)
4211 jvs(257) = 0.06*b(83,49)+0.05*b(84,49)
4212 jvs(258) = -b(62,50)
4213 jvs(259) = -b(58,51)+0.08*b(102,51)
4214 jvs(260) = -b(60,53)+0.1*b(106,53)
4216 jvs(262) = b(54,18)+0.5*b(56,18)
4217 jvs(263) = 0.22*b(82,20)
4218 jvs(264) = 0.03*b(97,27)
4219 jvs(265) = 0.8*b(127,28)+b(133,28)
4220 jvs(266) = 0.55*b(128,30)+0.5*b(134,30)
4221 jvs(267) = 0.47*b(83,31)+b(85,31)
4222 jvs(268) = 0.15*b(120,32)
4223 jvs(269) = 1.03*b(84,36)+1.77*b(86,36)
4224 jvs(270) = 0.5*b(104,37)+0.5*b(108,37)+0.5*b(116,37)
4225 jvs(271) = b(58,39)+b(60,39)+0.8*b(64,39)
4226 jvs(272) = -b(66,40)-b(67,40)-b(68,40)
4227 jvs(273) = 0.07*b(122,42)+0.02*b(124,42)+0.28*b(125,42)
4228 jvs(274) = 0.3*b(98,44)+0.04*b(99,44)
4229 jvs(275) = 0.25*b(102,45)+0.3*b(106,45)+0.21*b(114,45)
4230 jvs(276) = 0.3*b(101,46)
4231 jvs(277) = 0.5*b(56,48)+b(65,48)-b(67,48)+0.22*b(82,48)+b(85,48) &
4232 +1.77*b(86,48)+0.04*b(99,48)
4233 jvs(278) = 0.47*b(83,49)+1.03*b(84,49)+0.03*b(97,49)+0.15 &
4234 *b(120,49)+0.02*b(124,49)
4236 jvs(280) = b(58,51)+0.25*b(102,51)+0.5*b(104,51)+0.8*b(127,51) &
4238 jvs(281) = b(60,53)-b(68,53)+0.3*b(106,53)+0.5*b(108,53)+0.28 &
4240 jvs(282) = 0.7*b(55,17)
4241 jvs(283) = 0.07*b(83,31)
4243 jvs(285) = 0.1*b(84,36)
4245 jvs(287) = -b(57,41)-b(59,41)-b(61,41)-b(63,41)
4246 jvs(288) = 0.7*b(122,42)+0.05*b(124,42)
4251 jvs(293) = b(71,47)+b(72,47)+b(74,47)
4252 jvs(294) = b(46,48)+0.7*b(55,48)
4253 jvs(295) = 0.07*b(83,49)+0.1*b(84,49)+0.05*b(124,49)
4254 jvs(296) = -b(61,50)
4255 jvs(297) = -b(57,51)+b(71,51)
4256 jvs(298) = -b(59,53)+b(72,53)
4257 jvs(299) = 0.2*b(127,28)
4258 jvs(300) = 0.91*b(126,29)+b(132,29)
4259 jvs(301) = 0.65*b(120,32)
4260 jvs(302) = -b(122,42)-b(123,42)-b(124,42)-b(125,42)
4261 jvs(303) = -b(123,48)
4262 jvs(304) = 0.65*b(120,49)-b(124,49)
4264 jvs(306) = 0.91*b(126,51)+0.2*b(127,51)
4265 jvs(307) = -b(125,53)
4267 jvs(309) = 0.11*b(84,36)
4269 jvs(311) = -b(103,43)-b(107,43)-b(111,43)-b(115,43)
4274 jvs(316) = 0.11*b(84,49)
4275 jvs(317) = -b(111,50)
4276 jvs(318) = -b(103,51)
4277 jvs(319) = -b(107,53)
4278 jvs(320) = b(129,29)
4279 jvs(321) = b(131,30)
4282 jvs(324) = b(111,43)
4283 jvs(325) = -b(98,44)-b(99,44)
4284 jvs(326) = b(110,45)
4286 jvs(328) = -b(99,48)
4288 jvs(330) = b(110,50)+b(111,50)+b(129,50)+b(131,50)
4294 jvs(336) = 0.03*b(83,31)
4296 jvs(338) = 0.09*b(84,36)
4299 jvs(341) = 0.77*b(99,44)
4300 jvs(342) = -b(102,45)-b(106,45)-b(110,45)-b(114,45)
4302 jvs(344) = b(75,48)+0.77*b(99,48)
4303 jvs(345) = 0.03*b(83,49)+0.09*b(84,49)
4304 jvs(346) = -b(110,50)
4305 jvs(347) = -b(102,51)
4306 jvs(348) = -b(106,53)
4308 jvs(350) = 0.05*b(91,15)
4310 jvs(352) = 0.8*b(127,28)+b(130,28)+b(133,28)
4311 jvs(353) = 0.09*b(126,29)
4313 jvs(355) = 0.5*b(104,37)+0.5*b(108,37)+b(112,37)+0.5*b(116,37)
4314 jvs(356) = 0.93*b(125,42)
4315 jvs(357) = 0.16*b(102,45)
4316 jvs(358) = -b(100,46)-b(101,46)
4317 jvs(359) = -b(100,48)
4319 jvs(361) = b(112,50)+b(130,50)
4320 jvs(362) = 0.05*b(91,51)+0.16*b(102,51)+0.5*b(104,51)+0.09 &
4321 *b(126,51)+0.8*b(127,51)
4323 jvs(364) = 0.5*b(108,53)+0.93*b(125,53)
4325 jvs(366) = b(95,27)+b(96,27)+0.62*b(97,27)
4326 jvs(367) = 0.13*b(83,31)
4327 jvs(368) = 0.2*b(120,32)
4329 jvs(370) = 0.19*b(84,36)
4330 jvs(371) = b(78,38)+b(79,38)+b(80,38)
4331 jvs(372) = b(67,40)+b(68,40)
4332 jvs(373) = 0.97*b(122,42)+0.5*b(123,42)+0.11*b(124,42)+0.07 &
4334 jvs(374) = b(103,43)+b(107,43)+0.7*b(115,43)
4338 jvs(378) = -b(69,47)-b(71,47)-b(72,47)-b(73,47)-b(74,47)
4339 jvs(379) = b(67,48)+b(79,48)+b(95,48)+0.5*b(123,48)
4340 jvs(380) = 0.13*b(83,49)+0.19*b(84,49)+0.62*b(97,49)+0.2 &
4341 *b(120,49)+0.11*b(124,49)
4342 jvs(381) = -b(73,50)
4343 jvs(382) = -b(71,51)+b(103,51)
4344 jvs(383) = -b(69,52)
4345 jvs(384) = b(68,53)-b(72,53)+b(80,53)+b(107,53)+0.07*b(125,53)
4346 jvs(385) = 2*b(12,4)
4349 jvs(388) = 2*b(9,7)-b(30,7)
4351 jvs(390) = -b(89,10)
4352 jvs(391) = -b(90,12)
4353 jvs(392) = -b(28,14)
4354 jvs(393) = b(53,17)-0.7*b(55,17)
4355 jvs(394) = b(54,18)-0.5*b(56,18)
4356 jvs(395) = b(3,19)-b(26,19)
4357 jvs(396) = 0.12*b(81,20)-b(82,20)
4358 jvs(397) = -b(48,21)
4359 jvs(398) = -b(92,23)
4360 jvs(399) = b(4,24)-b(27,24)
4361 jvs(400) = -b(44,25)
4362 jvs(401) = -b(75,26)
4363 jvs(402) = -b(95,27)+0.08*b(97,27)
4367 jvs(406) = 0.33*b(83,31)-b(85,31)
4368 jvs(407) = -b(119,32)+0.27*b(120,32)
4369 jvs(408) = -b(51,33)
4370 jvs(409) = -b(77,35)
4371 jvs(410) = 0.6*b(84,36)-b(86,36)
4373 jvs(412) = -b(79,38)
4375 jvs(414) = -b(67,40)
4377 jvs(416) = -b(123,42)+0.27*b(124,42)
4379 jvs(418) = b(98,44)-0.77*b(99,44)
4381 jvs(420) = -b(100,46)
4383 jvs(422) = -b(20,48)-b(22,48)-b(23,48)-b(24,48)-b(25,48) &
4384 -b(26,48)-b(27,48)-b(28,48)-b(29,48)-b(30,48)-b(44,48) &
4385 -b(45,48)-b(46,48)-b(47,48)-b(48,48)-b(51,48)-0.7 &
4386 *b(55,48)-0.5*b(56,48)-b(65,48)-b(67,48)-b(75,48) &
4387 -b(77,48)-b(79,48)-b(82,48)-b(85,48)-b(86,48)-b(89,48) &
4388 -b(90,48)-b(92,48)-b(95,48)-0.77*b(99,48)-b(100,48) &
4389 -b(119,48)-b(123,48)
4390 jvs(423) = -b(20,49)+b(21,49)+0.12*b(81,49)+0.33*b(83,49)+0.6 &
4391 *b(84,49)+0.08*b(97,49)+0.27*b(120,49)+0.27*b(124,49)
4392 jvs(424) = b(21,50)-b(29,50)+b(33,50)+0.7*b(41,50)
4393 jvs(425) = -b(23,51)+b(33,51)
4394 jvs(426) = -b(24,52)
4395 jvs(427) = -b(25,53)+0.7*b(41,53)
4396 jvs(428) = -b(81,20)
4397 jvs(429) = b(13,22)-b(14,22)
4398 jvs(430) = -b(97,27)
4399 jvs(431) = -b(83,31)
4400 jvs(432) = -b(120,32)
4401 jvs(433) = -b(84,36)
4402 jvs(434) = -b(124,42)
4403 jvs(435) = 0.4*b(73,47)
4404 jvs(436) = -b(20,48)
4405 jvs(437) = -b(7,49)-b(8,49)-b(14,49)-b(18,49)-b(19,49)-b(20,49) &
4406 -b(21,49)-b(81,49)-b(83,49)-b(84,49)-b(97,49) &
4407 -b(120,49)-b(124,49)
4408 jvs(438) = -b(21,50)+0.4*b(73,50)
4409 jvs(439) = -b(18,51)
4410 jvs(440) = -b(19,52)
4415 jvs(445) = 0.2*b(89,10)
4416 jvs(446) = 0.55*b(90,12)
4417 jvs(447) = b(5,14)+b(36,14)
4418 jvs(448) = 0.95*b(91,15)
4421 jvs(451) = 0.22*b(81,20)+b(82,20)
4423 jvs(453) = 0.6*b(92,23)
4425 jvs(455) = 2*b(95,27)+b(96,27)+0.76*b(97,27)
4426 jvs(456) = 0.8*b(127,28)-b(130,28)
4427 jvs(457) = 0.91*b(126,29)-b(129,29)
4428 jvs(458) = b(128,30)-b(131,30)
4429 jvs(459) = 0.26*b(83,31)+b(85,31)
4430 jvs(460) = 0.07*b(120,32)
4431 jvs(461) = 2*b(49,33)+b(51,33)+b(52,33)
4432 jvs(462) = -b(113,34)
4433 jvs(463) = 0.22*b(84,36)+b(86,36)
4434 jvs(464) = 0.5*b(104,37)+0.5*b(108,37)-b(112,37)
4436 jvs(466) = b(58,39)+b(60,39)-b(62,39)+0.6*b(64,39)
4438 jvs(468) = b(57,41)+b(59,41)-b(61,41)+0.32*b(63,41)
4439 jvs(469) = 0.33*b(122,42)+0.1*b(124,42)+0.93*b(125,42)
4440 jvs(470) = -b(111,43)
4441 jvs(471) = 0.9*b(98,44)
4442 jvs(472) = 0.76*b(102,45)+0.9*b(106,45)-b(110,45)+0.54*b(114,45)
4443 jvs(473) = 0.9*b(101,46)
4444 jvs(474) = -b(73,47)
4445 jvs(475) = b(20,48)+b(22,48)+b(25,48)-b(29,48)+b(30,48)+b(44,48) &
4446 +b(45,48)+b(48,48)+b(51,48)+b(65,48)+b(82,48)+b(85,48) &
4447 +b(86,48)+0.2*b(89,48)+0.55*b(90,48)+0.6*b(92,48)+2 &
4449 jvs(476) = b(20,49)-b(21,49)+0.22*b(81,49)+0.26*b(83,49)+0.22 &
4450 *b(84,49)+0.76*b(97,49)+0.07*b(120,49)+0.1*b(124,49)
4451 jvs(477) = -b(21,50)-b(29,50)-2*b(31,50)-2*b(32,50)-b(33,50) &
4452 -b(34,50)-b(35,50)-b(41,50)-b(61,50)-b(62,50)-b(73,50) &
4453 -b(110,50)-b(111,50)-b(112,50)-b(113,50)-b(129,50) &
4454 -b(130,50)-b(131,50)
4455 jvs(478) = -b(33,51)+b(57,51)+b(58,51)+0.95*b(91,51)+0.76 &
4456 *b(102,51)+0.5*b(104,51)+0.91*b(126,51)+0.8*b(127,51) &
4458 jvs(479) = -b(34,52)-b(35,52)
4459 jvs(480) = b(25,53)-b(41,53)+b(52,53)+b(59,53)+b(60,53)+0.9 &
4460 *b(106,53)+0.5*b(108,53)+0.93*b(125,53)
4461 jvs(481) = -b(91,15)
4463 jvs(483) = b(15,22)-b(17,22)
4464 jvs(484) = -b(127,28)
4465 jvs(485) = -b(126,29)
4466 jvs(486) = -b(128,30)
4468 jvs(488) = -b(105,34)
4470 jvs(490) = -b(104,37)
4472 jvs(492) = -b(58,39)
4473 jvs(493) = -b(57,41)
4475 jvs(495) = -b(103,43)
4477 jvs(497) = -b(102,45)
4479 jvs(499) = -b(71,47)
4480 jvs(500) = -b(23,48)
4481 jvs(501) = -b(18,49)
4482 jvs(502) = -b(33,50)
4483 jvs(503) = -b(17,51)-b(18,51)-b(23,51)-b(33,51)-b(37,51) &
4484 -b(57,51)-b(58,51)-b(71,51)-b(91,51)-b(102,51) &
4485 -b(103,51)-b(104,51)-b(105,51)-b(126,51)-b(127,51) &
4487 jvs(504) = b(1,52)+b(15,52)+b(38,52)
4488 jvs(505) = 0.11*b(2,53)-b(37,53)+b(38,53)
4490 jvs(507) = b(6,11)+b(43,11)
4491 jvs(508) = -b(94,13)
4492 jvs(509) = b(5,14)+b(28,14)+b(36,14)
4493 jvs(510) = 0.95*b(91,15)
4495 jvs(512) = -b(15,22)-b(16,22)+b(17,22)
4498 jvs(515) = 1.2*b(127,28)
4499 jvs(516) = 0.91*b(126,29)
4500 jvs(517) = b(128,30)
4503 jvs(520) = b(105,34)+b(109,34)
4505 jvs(522) = 1.5*b(104,37)+1.5*b(108,37)+0.5*b(116,37)
4507 jvs(524) = b(58,39)+b(60,39)
4509 jvs(526) = b(57,41)+b(59,41)
4511 jvs(528) = b(103,43)+b(107,43)
4513 jvs(530) = 0.84*b(102,45)+b(106,45)
4514 jvs(531) = b(101,46)
4515 jvs(532) = -b(69,47)+b(71,47)+b(72,47)
4516 jvs(533) = -b(24,48)+b(25,48)+b(26,48)+b(28,48)
4517 jvs(534) = b(18,49)-b(19,49)
4518 jvs(535) = b(33,50)-b(34,50)-b(35,50)+0.7*b(41,50)
4519 jvs(536) = b(17,51)+b(18,51)+b(33,51)+2*b(37,51)+b(57,51) &
4520 +b(58,51)+b(71,51)+0.95*b(91,51)+0.84*b(102,51) &
4521 +b(103,51)+1.5*b(104,51)+b(105,51)+0.91*b(126,51)+1.2 &
4522 *b(127,51)+b(128,51)
4523 jvs(537) = -b(1,52)-b(15,52)-b(16,52)-b(19,52)-b(24,52)-b(34,52) &
4524 -b(35,52)-b(39,52)-b(69,52)-b(94,52)
4525 jvs(538) = 0.89*b(2,53)+b(25,53)+2*b(37,53)-b(39,53)+2*b(40,53) &
4526 +0.7*b(41,53)+b(59,53)+b(60,53)+b(72,53)+b(106,53) &
4527 +b(107,53)+1.5*b(108,53)+b(109,53)
4528 jvs(539) = b(6,11)+b(43,11)
4530 jvs(541) = -b(93,23)
4532 jvs(543) = -b(87,31)
4533 jvs(544) = -b(121,32)
4534 jvs(545) = -b(52,33)
4535 jvs(546) = -b(109,34)
4536 jvs(547) = -b(88,36)
4537 jvs(548) = -b(108,37)
4538 jvs(549) = -b(80,38)
4539 jvs(550) = -b(60,39)
4540 jvs(551) = -b(68,40)
4541 jvs(552) = -b(59,41)
4542 jvs(553) = -b(125,42)
4543 jvs(554) = -b(107,43)
4545 jvs(556) = -b(106,45)
4547 jvs(558) = -b(72,47)
4548 jvs(559) = -b(25,48)+b(27,48)
4550 jvs(561) = -b(41,50)
4551 jvs(562) = -b(37,51)
4552 jvs(563) = b(16,52)+b(19,52)-b(38,52)-b(39,52)
4553 jvs(564) = -b(2,53)-b(25,53)-b(37,53)-b(38,53)-b(39,53)-2 &
4554 *b(40,53)-b(41,53)-b(52,53)-b(59,53)-b(60,53)-b(68,53) &
4555 -b(72,53)-b(80,53)-b(87,53)-b(88,53)-b(93,53) &
4556 -b(106,53)-b(107,53)-b(108,53)-b(109,53)-b(121,53) &
4559 end subroutine cbmz_v02r03_jacob
4562 !-----------------------------------------------------------------------------
4563 subroutine cbmz_v02r03_decomp( n, v, ier, &
4564 lu_crow_v, lu_diag_v, lu_icol_v )
4566 ! computes l-u-decomposition of sparse jacobian
4567 ! for mechanism-version-regime = cbmz_v02r03
4569 use module_data_cbmz
4573 ! n = number of variable species [input]
4575 ! ier = status flag [output]
4576 ! 0 = success other = failure [output]
4579 ! v = non-zero elements of the sparse jacobian [input]
4580 real v(lu_nonzero_v_r03_kpp)
4582 integer lu_crow_v(nvar_r03_kpp + 1)
4583 integer lu_diag_v(nvar_r03_kpp + 1)
4584 integer lu_icol_v(lu_nonzero_v_r03_kpp)
4587 integer k, kk, j, jj
4588 real a, w(nvar_r03_kpp + 1)
4592 if ( v( lu_diag_v(k) ) .eq. 0. ) then
4596 do kk = lu_crow_v(k), lu_crow_v(k+1)-1
4597 w( lu_icol_v(kk) ) = v(kk)
4599 do kk = lu_crow_v(k), lu_diag_v(k)-1
4601 a = -w(j) / v( lu_diag_v(j) )
4603 do jj = lu_diag_v(j)+1, lu_crow_v(j+1)-1
4604 w( lu_icol_v(jj) ) = w( lu_icol_v(jj) ) + a*v(jj)
4607 do kk = lu_crow_v(k), lu_crow_v(k+1)-1
4608 v(kk) = w( lu_icol_v(kk) )
4612 end subroutine cbmz_v02r03_decomp
4615 !-----------------------------------------------------------------------------
4616 subroutine cbmz_v02r03_solve( jvs, x )
4618 ! does back-solve for mechanism-version-regime = cbmz_v02r03
4623 ! jvs = the non-zero elements of the l-u-decomposition
4624 ! of the augmented jacobian [input]
4626 ! x = the right-hand side of the linear equation set being solved [on input]
4627 ! x = concentrations of variable species [on output]
4631 x(15) = x(15)-jvs(47)*x(10)-jvs(48)*x(12)
4632 x(22) = x(22)-jvs(86)*x(4)
4633 x(23) = x(23)-jvs(92)*x(10)-jvs(93)*x(12)
4634 x(24) = x(24)-jvs(97)*x(11)-jvs(98)*x(23)
4635 x(25) = x(25)-jvs(108)*x(20)
4636 x(26) = x(26)-jvs(123)*x(12)-jvs(124)*x(16)
4637 x(27) = x(27)-jvs(140)*x(15)-jvs(141)*x(23)
4638 x(33) = x(33)-jvs(170)*x(17)-jvs(171)*x(20)-jvs(172)*x(21) &
4639 -jvs(173)*x(27)-jvs(174)*x(29)-jvs(175)*x(30)-jvs(176) &
4640 *x(31)-jvs(177)*x(32)
4641 x(34) = x(34)-jvs(189)*x(10)-jvs(190)*x(12)-jvs(191)*x(20) &
4642 -jvs(192)*x(23)-jvs(193)*x(27)-jvs(194)*x(31)-jvs(195) &
4644 x(35) = x(35)-jvs(208)*x(30)
4645 x(37) = x(37)-jvs(225)*x(31)-jvs(226)*x(36)
4646 x(38) = x(38)-jvs(234)*x(12)-jvs(235)*x(27)-jvs(236)*x(30) &
4647 -jvs(237)*x(31)-jvs(238)*x(36)
4648 x(39) = x(39)-jvs(248)*x(8)-jvs(249)*x(18)-jvs(250)*x(31) &
4650 x(40) = x(40)-jvs(261)*x(6)-jvs(262)*x(18)-jvs(263)*x(20) &
4651 -jvs(264)*x(27)-jvs(265)*x(28)-jvs(266)*x(30)-jvs(267) &
4652 *x(31)-jvs(268)*x(32)-jvs(269)*x(36)-jvs(270)*x(37) &
4654 x(41) = x(41)-jvs(282)*x(17)-jvs(283)*x(31)-jvs(284)*x(35) &
4655 -jvs(285)*x(36)-jvs(286)*x(40)
4656 x(42) = x(42)-jvs(299)*x(28)-jvs(300)*x(29)-jvs(301)*x(32)
4657 x(43) = x(43)-jvs(308)*x(35)-jvs(309)*x(36)-jvs(310)*x(42)
4658 x(44) = x(44)-jvs(320)*x(29)-jvs(321)*x(30)-jvs(322)*x(32) &
4659 -jvs(323)*x(42)-jvs(324)*x(43)
4660 x(45) = x(45)-jvs(333)*x(26)-jvs(334)*x(28)-jvs(335)*x(29) &
4661 -jvs(336)*x(31)-jvs(337)*x(32)-jvs(338)*x(36)-jvs(339) &
4662 *x(37)-jvs(340)*x(42)-jvs(341)*x(44)
4663 x(46) = x(46)-jvs(349)*x(13)-jvs(350)*x(15)-jvs(351)*x(23) &
4664 -jvs(352)*x(28)-jvs(353)*x(29)-jvs(354)*x(32)-jvs(355) &
4665 *x(37)-jvs(356)*x(42)-jvs(357)*x(45)
4666 x(47) = x(47)-jvs(365)*x(9)-jvs(366)*x(27)-jvs(367)*x(31) &
4667 -jvs(368)*x(32)-jvs(369)*x(35)-jvs(370)*x(36)-jvs(371) &
4668 *x(38)-jvs(372)*x(40)-jvs(373)*x(42)-jvs(374)*x(43) &
4669 -jvs(375)*x(44)-jvs(376)*x(45)-jvs(377)*x(46)
4670 x(48) = x(48)-jvs(385)*x(4)-jvs(386)*x(5)-jvs(387)*x(6)-jvs(388) &
4671 *x(7)-jvs(389)*x(8)-jvs(390)*x(10)-jvs(391)*x(12) &
4672 -jvs(392)*x(14)-jvs(393)*x(17)-jvs(394)*x(18)-jvs(395) &
4673 *x(19)-jvs(396)*x(20)-jvs(397)*x(21)-jvs(398)*x(23) &
4674 -jvs(399)*x(24)-jvs(400)*x(25)-jvs(401)*x(26)-jvs(402) &
4675 *x(27)-jvs(403)*x(28)-jvs(404)*x(29)-jvs(405)*x(30) &
4676 -jvs(406)*x(31)-jvs(407)*x(32)-jvs(408)*x(33)-jvs(409) &
4677 *x(35)-jvs(410)*x(36)-jvs(411)*x(37)-jvs(412)*x(38) &
4678 -jvs(413)*x(39)-jvs(414)*x(40)-jvs(415)*x(41)-jvs(416) &
4679 *x(42)-jvs(417)*x(43)-jvs(418)*x(44)-jvs(419)*x(45) &
4680 -jvs(420)*x(46)-jvs(421)*x(47)
4681 x(49) = x(49)-jvs(428)*x(20)-jvs(429)*x(22)-jvs(430)*x(27) &
4682 -jvs(431)*x(31)-jvs(432)*x(32)-jvs(433)*x(36)-jvs(434) &
4683 *x(42)-jvs(435)*x(47)-jvs(436)*x(48)
4684 x(50) = x(50)-jvs(442)*x(5)-jvs(443)*x(6)-jvs(444)*x(7)-jvs(445) &
4685 *x(10)-jvs(446)*x(12)-jvs(447)*x(14)-jvs(448)*x(15) &
4686 -jvs(449)*x(17)-jvs(450)*x(18)-jvs(451)*x(20)-jvs(452) &
4687 *x(21)-jvs(453)*x(23)-jvs(454)*x(25)-jvs(455)*x(27) &
4688 -jvs(456)*x(28)-jvs(457)*x(29)-jvs(458)*x(30)-jvs(459) &
4689 *x(31)-jvs(460)*x(32)-jvs(461)*x(33)-jvs(462)*x(34) &
4690 -jvs(463)*x(36)-jvs(464)*x(37)-jvs(465)*x(38)-jvs(466) &
4691 *x(39)-jvs(467)*x(40)-jvs(468)*x(41)-jvs(469)*x(42) &
4692 -jvs(470)*x(43)-jvs(471)*x(44)-jvs(472)*x(45)-jvs(473) &
4693 *x(46)-jvs(474)*x(47)-jvs(475)*x(48)-jvs(476)*x(49)
4694 x(51) = x(51)-jvs(481)*x(15)-jvs(482)*x(19)-jvs(483)*x(22) &
4695 -jvs(484)*x(28)-jvs(485)*x(29)-jvs(486)*x(30)-jvs(487) &
4696 *x(32)-jvs(488)*x(34)-jvs(489)*x(36)-jvs(490)*x(37) &
4697 -jvs(491)*x(38)-jvs(492)*x(39)-jvs(493)*x(41)-jvs(494) &
4698 *x(42)-jvs(495)*x(43)-jvs(496)*x(44)-jvs(497)*x(45) &
4699 -jvs(498)*x(46)-jvs(499)*x(47)-jvs(500)*x(48)-jvs(501) &
4700 *x(49)-jvs(502)*x(50)
4701 x(52) = x(52)-jvs(506)*x(9)-jvs(507)*x(11)-jvs(508)*x(13) &
4702 -jvs(509)*x(14)-jvs(510)*x(15)-jvs(511)*x(19)-jvs(512) &
4703 *x(22)-jvs(513)*x(23)-jvs(514)*x(24)-jvs(515)*x(28) &
4704 -jvs(516)*x(29)-jvs(517)*x(30)-jvs(518)*x(32)-jvs(519) &
4705 *x(33)-jvs(520)*x(34)-jvs(521)*x(36)-jvs(522)*x(37) &
4706 -jvs(523)*x(38)-jvs(524)*x(39)-jvs(525)*x(40)-jvs(526) &
4707 *x(41)-jvs(527)*x(42)-jvs(528)*x(43)-jvs(529)*x(44) &
4708 -jvs(530)*x(45)-jvs(531)*x(46)-jvs(532)*x(47)-jvs(533) &
4709 *x(48)-jvs(534)*x(49)-jvs(535)*x(50)-jvs(536)*x(51)
4710 x(53) = x(53)-jvs(539)*x(11)-jvs(540)*x(22)-jvs(541)*x(23) &
4711 -jvs(542)*x(24)-jvs(543)*x(31)-jvs(544)*x(32)-jvs(545) &
4712 *x(33)-jvs(546)*x(34)-jvs(547)*x(36)-jvs(548)*x(37) &
4713 -jvs(549)*x(38)-jvs(550)*x(39)-jvs(551)*x(40)-jvs(552) &
4714 *x(41)-jvs(553)*x(42)-jvs(554)*x(43)-jvs(555)*x(44) &
4715 -jvs(556)*x(45)-jvs(557)*x(46)-jvs(558)*x(47)-jvs(559) &
4716 *x(48)-jvs(560)*x(49)-jvs(561)*x(50)-jvs(562)*x(51) &
4718 x(53) = x(53)/jvs(564)
4719 x(52) = (x(52)-jvs(538)*x(53))/(jvs(537))
4720 x(51) = (x(51)-jvs(504)*x(52)-jvs(505)*x(53))/(jvs(503))
4721 x(50) = (x(50)-jvs(478)*x(51)-jvs(479)*x(52)-jvs(480)*x(53))/ &
4723 x(49) = (x(49)-jvs(438)*x(50)-jvs(439)*x(51)-jvs(440)*x(52) &
4724 -jvs(441)*x(53))/(jvs(437))
4725 x(48) = (x(48)-jvs(423)*x(49)-jvs(424)*x(50)-jvs(425)*x(51) &
4726 -jvs(426)*x(52)-jvs(427)*x(53))/(jvs(422))
4727 x(47) = (x(47)-jvs(379)*x(48)-jvs(380)*x(49)-jvs(381)*x(50) &
4728 -jvs(382)*x(51)-jvs(383)*x(52)-jvs(384)*x(53))/(jvs(378))
4729 x(46) = (x(46)-jvs(359)*x(48)-jvs(360)*x(49)-jvs(361)*x(50) &
4730 -jvs(362)*x(51)-jvs(363)*x(52)-jvs(364)*x(53))/(jvs(358))
4731 x(45) = (x(45)-jvs(343)*x(46)-jvs(344)*x(48)-jvs(345)*x(49) &
4732 -jvs(346)*x(50)-jvs(347)*x(51)-jvs(348)*x(53))/(jvs(342))
4733 x(44) = (x(44)-jvs(326)*x(45)-jvs(327)*x(46)-jvs(328)*x(48) &
4734 -jvs(329)*x(49)-jvs(330)*x(50)-jvs(331)*x(51)-jvs(332) &
4736 x(43) = (x(43)-jvs(312)*x(44)-jvs(313)*x(45)-jvs(314)*x(46) &
4737 -jvs(315)*x(48)-jvs(316)*x(49)-jvs(317)*x(50)-jvs(318) &
4738 *x(51)-jvs(319)*x(53))/(jvs(311))
4739 x(42) = (x(42)-jvs(303)*x(48)-jvs(304)*x(49)-jvs(305)*x(50) &
4740 -jvs(306)*x(51)-jvs(307)*x(53))/(jvs(302))
4741 x(41) = (x(41)-jvs(288)*x(42)-jvs(289)*x(43)-jvs(290)*x(44) &
4742 -jvs(291)*x(45)-jvs(292)*x(46)-jvs(293)*x(47)-jvs(294) &
4743 *x(48)-jvs(295)*x(49)-jvs(296)*x(50)-jvs(297)*x(51) &
4744 -jvs(298)*x(53))/(jvs(287))
4745 x(40) = (x(40)-jvs(273)*x(42)-jvs(274)*x(44)-jvs(275)*x(45) &
4746 -jvs(276)*x(46)-jvs(277)*x(48)-jvs(278)*x(49)-jvs(279) &
4747 *x(50)-jvs(280)*x(51)-jvs(281)*x(53))/(jvs(272))
4748 x(39) = (x(39)-jvs(253)*x(44)-jvs(254)*x(45)-jvs(255)*x(46) &
4749 -jvs(256)*x(48)-jvs(257)*x(49)-jvs(258)*x(50)-jvs(259) &
4750 *x(51)-jvs(260)*x(53))/(jvs(252))
4751 x(38) = (x(38)-jvs(240)*x(42)-jvs(241)*x(43)-jvs(242)*x(44) &
4752 -jvs(243)*x(48)-jvs(244)*x(49)-jvs(245)*x(50)-jvs(246) &
4753 *x(51)-jvs(247)*x(53))/(jvs(239))
4754 x(37) = (x(37)-jvs(228)*x(46)-jvs(229)*x(48)-jvs(230)*x(49) &
4755 -jvs(231)*x(50)-jvs(232)*x(51)-jvs(233)*x(53))/(jvs(227))
4756 x(36) = (x(36)-jvs(222)*x(48)-jvs(223)*x(49)-jvs(224)*x(53))/ &
4758 x(35) = (x(35)-jvs(210)*x(36)-jvs(211)*x(42)-jvs(212)*x(43) &
4759 -jvs(213)*x(44)-jvs(214)*x(45)-jvs(215)*x(46)-jvs(216) &
4760 *x(48)-jvs(217)*x(49)-jvs(218)*x(50)-jvs(219)*x(51) &
4761 -jvs(220)*x(53))/(jvs(209))
4762 x(34) = (x(34)-jvs(197)*x(36)-jvs(198)*x(38)-jvs(199)*x(42) &
4763 -jvs(200)*x(44)-jvs(201)*x(45)-jvs(202)*x(46)-jvs(203) &
4764 *x(48)-jvs(204)*x(49)-jvs(205)*x(50)-jvs(206)*x(51) &
4765 -jvs(207)*x(53))/(jvs(196))
4766 x(33) = (x(33)-jvs(179)*x(36)-jvs(180)*x(37)-jvs(181)*x(41) &
4767 -jvs(182)*x(42)-jvs(183)*x(43)-jvs(184)*x(48)-jvs(185) &
4768 *x(49)-jvs(186)*x(50)-jvs(187)*x(51)-jvs(188)*x(53))/ &
4770 x(32) = (x(32)-jvs(167)*x(48)-jvs(168)*x(49)-jvs(169)*x(53))/ &
4772 x(31) = (x(31)-jvs(163)*x(48)-jvs(164)*x(49)-jvs(165)*x(53))/ &
4774 x(30) = (x(30)-jvs(158)*x(42)-jvs(159)*x(48)-jvs(160)*x(50) &
4775 -jvs(161)*x(51))/(jvs(157))
4776 x(29) = (x(29)-jvs(153)*x(32)-jvs(154)*x(48)-jvs(155)*x(50) &
4777 -jvs(156)*x(51))/(jvs(152))
4778 x(28) = (x(28)-jvs(148)*x(32)-jvs(149)*x(50)-jvs(150)*x(51) &
4779 -jvs(151)*x(53))/(jvs(147))
4780 x(27) = (x(27)-jvs(143)*x(48)-jvs(144)*x(49)-jvs(145)*x(51) &
4781 -jvs(146)*x(53))/(jvs(142))
4782 x(26) = (x(26)-jvs(126)*x(28)-jvs(127)*x(29)-jvs(128)*x(31) &
4783 -jvs(129)*x(36)-jvs(130)*x(37)-jvs(131)*x(42)-jvs(132) &
4784 *x(44)-jvs(133)*x(45)-jvs(134)*x(46)-jvs(135)*x(48) &
4785 -jvs(136)*x(49)-jvs(137)*x(50)-jvs(138)*x(51)-jvs(139) &
4787 x(25) = (x(25)-jvs(110)*x(27)-jvs(111)*x(30)-jvs(112)*x(31) &
4788 -jvs(113)*x(32)-jvs(114)*x(33)-jvs(115)*x(36)-jvs(116) &
4789 *x(38)-jvs(117)*x(40)-jvs(118)*x(42)-jvs(119)*x(48) &
4790 -jvs(120)*x(49)-jvs(121)*x(51)-jvs(122)*x(53))/(jvs(109))
4791 x(24) = (x(24)-jvs(100)*x(33)-jvs(101)*x(38)-jvs(102)*x(40) &
4792 -jvs(103)*x(42)-jvs(104)*x(48)-jvs(105)*x(50)-jvs(106) &
4793 *x(52)-jvs(107)*x(53))/(jvs(99))
4794 x(23) = (x(23)-jvs(95)*x(48)-jvs(96)*x(53))/(jvs(94))
4795 x(22) = (x(22)-jvs(88)*x(49)-jvs(89)*x(51)-jvs(90)*x(52)-jvs(91) &
4797 x(21) = (x(21)-jvs(81)*x(31)-jvs(82)*x(36)-jvs(83)*x(41)-jvs(84) &
4798 *x(48)-jvs(85)*x(49))/(jvs(80))
4799 x(20) = (x(20)-jvs(78)*x(48)-jvs(79)*x(49))/(jvs(77))
4800 x(19) = (x(19)-jvs(73)*x(48)-jvs(74)*x(50)-jvs(75)*x(51)-jvs(76) &
4802 x(18) = (x(18)-jvs(69)*x(39)-jvs(70)*x(48)-jvs(71)*x(50))/ &
4804 x(17) = (x(17)-jvs(65)*x(41)-jvs(66)*x(48)-jvs(67)*x(50))/ &
4806 x(16) = (x(16)-jvs(53)*x(26)-jvs(54)*x(31)-jvs(55)*x(36)-jvs(56) &
4807 *x(37)-jvs(57)*x(44)-jvs(58)*x(45)-jvs(59)*x(46)-jvs(60) &
4808 *x(48)-jvs(61)*x(49)-jvs(62)*x(51)-jvs(63)*x(53))/ &
4810 x(15) = (x(15)-jvs(50)*x(48)-jvs(51)*x(51))/(jvs(49))
4811 x(14) = (x(14)-jvs(44)*x(48)-jvs(45)*x(50)-jvs(46)*x(52))/ &
4813 x(13) = (x(13)-jvs(39)*x(23)-jvs(40)*x(48)-jvs(41)*x(52)-jvs(42) &
4815 x(12) = (x(12)-jvs(37)*x(48))/(jvs(36))
4816 x(11) = (x(11)-jvs(34)*x(52)-jvs(35)*x(53))/(jvs(33))
4817 x(10) = (x(10)-jvs(32)*x(48))/(jvs(31))
4818 x(9) = (x(9)-jvs(29)*x(47)-jvs(30)*x(52))/(jvs(28))
4819 x(8) = (x(8)-jvs(26)*x(39)-jvs(27)*x(48))/(jvs(25))
4820 x(7) = (x(7)-jvs(23)*x(48)-jvs(24)*x(50))/(jvs(22))
4821 x(6) = (x(6)-jvs(21)*x(48))/(jvs(20))
4822 x(5) = (x(5)-jvs(19)*x(48))/(jvs(18))
4823 x(4) = (x(4)-jvs(17)*x(49))/(jvs(16))
4824 x(3) = (x(3)-jvs(11)*x(31)-jvs(12)*x(36)-jvs(13)*x(47)-jvs(14) &
4825 *x(49)-jvs(15)*x(50))/(jvs(10))
4826 x(2) = (x(2)-jvs(5)*x(20)-jvs(6)*x(31)-jvs(7)*x(32)-jvs(8)*x(42) &
4827 -jvs(9)*x(49))/(jvs(4))
4828 x(1) = (x(1)-jvs(2)*x(5)-jvs(3)*x(48))/(jvs(1))
4830 end subroutine cbmz_v02r03_solve
4833 ! cbmz_v02r04_torodas.f - created on 18-nov-2003 from previous
4834 ! cbmz_v02r04_torodas.f cbmz_v02r04_mapconcs.f
4835 ! cbmz_v02r04_maprates.f cbmz_v02r04_dydt.f
4836 ! cbmz_v02r04_jacob.f cbmz_v02r04_decomp.f
4837 ! cbmz_v02r04_solve.f
4838 ! so now everything is in a single file
4839 !-----------------------------------------------------------------------
4841 subroutine cbmz_v02r04_torodas( &
4843 stot, atol, rtol, yposlimit, yneglimit, &
4844 sfixedkpp, rconstkpp, &
4846 info_rodas, iok, lunerr, idydt_sngldble )
4848 ! interfaces to rodas3 solver formechanism-version-regime =cbmz_v02r04
4850 ! *** do not include any pegasus common blocks ***
4852 use module_data_cbmz
4853 use module_cbmz_rodas3_solver, only: rodas3_ff_x2
4857 integer ngas, iok, lunerr, idydt_sngldble
4858 integer info_rodas(6)
4859 real taa, tzz, hmin, hstart
4860 real stot(ngas), atol(ngas), rtol(ngas)
4861 real yposlimit(ngas), yneglimit(ngas)
4862 real sfixedkpp(nfixed_kppmax), rconstkpp(nreact_kppmax)
4866 ! external cbmz_v02r04_dydt
4867 ! external cbmz_v02r04_jacob
4868 ! external cbmz_v02r04_decomp
4869 ! external cbmz_v02r04_solve
4875 integer lu_crow_v(nvar_r04_kpp + 1)
4877 integer lu_diag_v(nvar_r04_kpp + 1)
4879 integer lu_icol_v(lu_nonzero_v_r04_kpp)
4882 data( lu_icol_v(i), i = 1, 252 ) / &
4883 1, 7, 33, 39, 2, 25, 34, 3, 28, 29, 32, 33, &
4884 34, 37, 38, 39, 4, 27, 5, 31, 6, 39, 7, 32, &
4885 39, 8, 21, 39, 9, 25, 37, 10, 16, 39, 11, 29, &
4886 34, 39, 12, 35, 39, 13, 36, 37, 14, 34, 37, 39, &
4887 15, 22, 28, 33, 36, 39, 16, 26, 39, 17, 21, 34, &
4888 39, 18, 33, 34, 37, 38, 39, 19, 29, 34, 35, 39, &
4889 20, 32, 35, 38, 8, 17, 21, 34, 36, 38, 39, 6, &
4890 17, 21, 22, 34, 36, 38, 39, 10, 16, 23, 26, 35, &
4891 38, 39, 13, 22, 24, 26, 28, 29, 33, 34, 36, 37, &
4892 38, 39, 9, 22, 25, 34, 36, 37, 38, 39, 26, 30, &
4893 36, 39, 26, 27, 30, 32, 35, 36, 38, 39, 12, 19, &
4894 20, 23, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, &
4895 38, 39, 16, 26, 29, 30, 33, 34, 35, 36, 39, 5, &
4896 26, 30, 31, 36, 37, 38, 39, 25, 30, 31, 32, 34, &
4897 36, 37, 38, 39, 20, 23, 26, 27, 29, 30, 31, 32, &
4898 33, 34, 35, 36, 37, 38, 39, 20, 27, 28, 29, 30, &
4899 31, 32, 33, 34, 35, 36, 37, 38, 39, 6, 7, 11, &
4900 12, 14, 15, 16, 17, 19, 20, 21, 22, 23, 25, 26, &
4901 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, &
4902 39, 16, 19, 20, 22, 23, 25, 26, 27, 29, 30, 31, &
4903 32, 33, 34, 35, 36, 37, 38, 39, 13, 21, 22, 24 /
4905 data( lu_icol_v(i), i = 253, 334 ) / &
4906 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, &
4907 38, 39, 9, 13, 14, 18, 20, 21, 23, 24, 25, 26, &
4908 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, &
4909 18, 20, 21, 23, 25, 26, 27, 30, 31, 32, 33, 34, &
4910 35, 36, 37, 38, 39, 5, 6, 7, 8, 10, 11, 12, &
4911 14, 15, 16, 17, 18, 19, 21, 22, 24, 26, 28, 29, &
4912 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 /
4915 1, 5, 8, 17, 19, 21, 23, 26, 29, 32, 35, 39, &
4916 42, 45, 49, 55, 58, 62, 68, 73, 77, 84, 92, 99, &
4917 111,119,123,131,147,156,164,173,188,202,230,249, &
4921 1, 5, 8, 17, 19, 21, 23, 26, 29, 32, 35, 39, &
4922 42, 45, 49, 55, 58, 62, 68, 73, 79, 87, 94,101, &
4923 113,119,124,137,149,158,166,180,195,224,244,263, &
4934 ! do not integrate if hmax is less/equal to hmin
4935 ! because hmin is generally 0.1 s or less
4936 if (hmax .le. 1.001*hmin) then
4941 call rodas3_ff_x2( &
4942 nvar_r04_kpp, taa, tzz, hmin, hmax, hstart, &
4943 stot, atol, rtol, yposlimit, yneglimit, &
4944 sfixedkpp, rconstkpp, &
4945 lu_nonzero_v_r04_kpp, lu_crow_v, lu_diag_v, lu_icol_v, &
4946 info_rodas, iok, lunerr, &
4948 cbmz_v02r04_jacob, &
4949 cbmz_v02r04_decomp, &
4953 end subroutine cbmz_v02r04_torodas
4956 !-----------------------------------------------------------------------------
4957 subroutine cbmz_v02r04_mapconcs( imap, nyy, yy, yyfixed, cbox )
4959 ! maps species concentrations (gaschemistry cbox array <--> kpp yy array)
4960 ! for mechanism-version-regime = cbmz_v02r04
4962 use module_data_cbmz
4966 ! imap = mapping direction flag [input]
4967 ! 0 = map cbox --> yy and yyfixed
4968 ! 1 = map yy --> cbox
4970 ! nyy = number of kpp "variable" species [output]
4972 ! yy = kpp species concentrations array [input/output]
4973 real yy(nvar_r04_kpp)
4974 ! yyfixed = kpp species concentrations array [input/output]
4975 real yyfixed(nfixed_kppmax)
4976 ! cbox = main gaschemistry species conc array [input/output]
4981 parameter ( ih2so4_kpp = 1 )
4983 parameter ( ircooh_kpp = 2 )
4985 parameter ( imsa_kpp = 3 )
4987 parameter ( imtf_kpp = 4 )
4989 parameter ( io1d_kpp = 5 )
4991 parameter ( ic2h5oh_kpp = 6 )
4993 parameter ( iso2_kpp = 7 )
4995 parameter ( ic2h6_kpp = 8 )
4997 parameter ( ipan_kpp = 9 )
4999 parameter ( idmso2_kpp = 10 )
5001 parameter ( ih2o2_kpp = 11 )
5003 parameter ( ich3oh_kpp = 12 )
5005 parameter ( in2o5_kpp = 13 )
5007 parameter ( ihno4_kpp = 14 )
5009 parameter ( ico_kpp = 15 )
5011 parameter ( idmso_kpp = 16 )
5013 parameter ( iethooh_kpp = 17 )
5015 parameter ( ihono_kpp = 18 )
5017 parameter ( ich3ooh_kpp = 19 )
5018 integer ich3so2oo_kpp
5019 parameter ( ich3so2oo_kpp = 20 )
5021 parameter ( iethp_kpp = 21 )
5023 parameter ( iald2_kpp = 22 )
5024 integer ich3so2ch2oo_kpp
5025 parameter ( ich3so2ch2oo_kpp = 23 )
5027 parameter ( ihno3_kpp = 24 )
5029 parameter ( ic2o3_kpp = 25 )
5031 parameter ( idms_kpp = 26 )
5032 integer ich3sch2oo_kpp
5033 parameter ( ich3sch2oo_kpp = 27 )
5035 parameter ( ihcho_kpp = 28 )
5036 integer ich3so2h_kpp
5037 parameter ( ich3so2h_kpp = 29 )
5039 parameter ( io3p_kpp = 30 )
5041 parameter ( io3_kpp = 31 )
5043 parameter ( ich3so2_kpp = 32 )
5045 parameter ( ich3so3_kpp = 33 )
5047 parameter ( iho2_kpp = 34 )
5049 parameter ( ich3o2_kpp = 35 )
5051 parameter ( ino3_kpp = 36 )
5053 parameter ( ino2_kpp = 37 )
5055 parameter ( ino_kpp = 38 )
5057 parameter ( ioh_kpp = 39 )
5059 ! indexes declaration for fixed species
5061 parameter ( ich4_kpp = 1 )
5063 parameter ( ih2o_kpp = 2 )
5065 parameter ( ih2_kpp = 3 )
5067 parameter ( io2_kpp = 4 )
5069 parameter ( in2_kpp = 5 )
5074 if (imap .le. 0) goto 1000
5075 if (imap .ge. 1) goto 2000
5079 ! map cbox values into yyvarkpp and yyfixkpp
5082 yy(ih2so4_kpp) = cbox(ih2so4_z)
5083 yy(ircooh_kpp) = cbox(ircooh_z)
5084 yy(imsa_kpp) = cbox(imsa_z)
5085 yy(imtf_kpp) = cbox(imtf_z)
5086 yy(io1d_kpp) = cbox(io1d_z)
5087 yy(ic2h5oh_kpp) = cbox(ic2h5oh_z)
5088 yy(iso2_kpp) = cbox(iso2_z)
5089 yy(ic2h6_kpp) = cbox(ic2h6_z)
5090 yy(ipan_kpp) = cbox(ipan_z)
5091 yy(idmso2_kpp) = cbox(idmso2_z)
5092 yy(ih2o2_kpp) = cbox(ih2o2_z)
5093 yy(ich3oh_kpp) = cbox(ich3oh_z)
5094 yy(in2o5_kpp) = cbox(in2o5_z)
5095 yy(ihno4_kpp) = cbox(ihno4_z)
5096 yy(ico_kpp) = cbox(ico_z)
5097 yy(idmso_kpp) = cbox(idmso_z)
5098 yy(iethooh_kpp) = cbox(iethooh_z)
5099 yy(ihono_kpp) = cbox(ihono_z)
5100 yy(ich3ooh_kpp) = cbox(ich3ooh_z)
5101 yy(ich3so2oo_kpp) = cbox(ich3so2oo_z)
5102 yy(iethp_kpp) = cbox(iethp_z)
5103 yy(iald2_kpp) = cbox(iald2_z)
5104 yy(ich3so2ch2oo_kpp) = cbox(ich3so2ch2oo_z)
5105 yy(ihno3_kpp) = cbox(ihno3_z)
5106 yy(ic2o3_kpp) = cbox(ic2o3_z)
5107 yy(idms_kpp) = cbox(idms_z)
5108 yy(ich3sch2oo_kpp) = cbox(ich3sch2oo_z)
5109 yy(ihcho_kpp) = cbox(ihcho_z)
5110 yy(ich3so2h_kpp) = cbox(ich3so2h_z)
5111 yy(io3p_kpp) = cbox(io3p_z)
5112 yy(io3_kpp) = cbox(io3_z)
5113 yy(ich3so2_kpp) = cbox(ich3so2_z)
5114 yy(ich3so3_kpp) = cbox(ich3so3_z)
5115 yy(iho2_kpp) = cbox(iho2_z)
5116 yy(ich3o2_kpp) = cbox(ich3o2_z)
5117 yy(ino3_kpp) = cbox(ino3_z)
5118 yy(ino2_kpp) = cbox(ino2_z)
5119 yy(ino_kpp) = cbox(ino_z)
5120 yy(ioh_kpp) = cbox(ioh_z)
5122 yyfixed(ich4_kpp) = cbox(ich4_z)
5123 yyfixed(ih2o_kpp) = cbox(ih2o_z)
5124 yyfixed(ih2_kpp) = cbox(ih2_z)
5125 yyfixed(io2_kpp) = cbox(io2_z)
5126 yyfixed(in2_kpp) = cbox(in2_z)
5129 ! map yyvarkpp values into cbox
5132 cbox(ih2so4_z) = yy(ih2so4_kpp)
5133 cbox(ircooh_z) = yy(ircooh_kpp)
5134 cbox(imsa_z) = yy(imsa_kpp)
5135 cbox(imtf_z) = yy(imtf_kpp)
5136 cbox(io1d_z) = yy(io1d_kpp)
5137 cbox(ic2h5oh_z) = yy(ic2h5oh_kpp)
5138 cbox(iso2_z) = yy(iso2_kpp)
5139 cbox(ic2h6_z) = yy(ic2h6_kpp)
5140 cbox(ipan_z) = yy(ipan_kpp)
5141 cbox(idmso2_z) = yy(idmso2_kpp)
5142 cbox(ih2o2_z) = yy(ih2o2_kpp)
5143 cbox(ich3oh_z) = yy(ich3oh_kpp)
5144 cbox(in2o5_z) = yy(in2o5_kpp)
5145 cbox(ihno4_z) = yy(ihno4_kpp)
5146 cbox(ico_z) = yy(ico_kpp)
5147 cbox(idmso_z) = yy(idmso_kpp)
5148 cbox(iethooh_z) = yy(iethooh_kpp)
5149 cbox(ihono_z) = yy(ihono_kpp)
5150 cbox(ich3ooh_z) = yy(ich3ooh_kpp)
5151 cbox(ich3so2oo_z) = yy(ich3so2oo_kpp)
5152 cbox(iethp_z) = yy(iethp_kpp)
5153 cbox(iald2_z) = yy(iald2_kpp)
5154 cbox(ich3so2ch2oo_z) = yy(ich3so2ch2oo_kpp)
5155 cbox(ihno3_z) = yy(ihno3_kpp)
5156 cbox(ic2o3_z) = yy(ic2o3_kpp)
5157 cbox(idms_z) = yy(idms_kpp)
5158 cbox(ich3sch2oo_z) = yy(ich3sch2oo_kpp)
5159 cbox(ihcho_z) = yy(ihcho_kpp)
5160 cbox(ich3so2h_z) = yy(ich3so2h_kpp)
5161 cbox(io3p_z) = yy(io3p_kpp)
5162 cbox(io3_z) = yy(io3_kpp)
5163 cbox(ich3so2_z) = yy(ich3so2_kpp)
5164 cbox(ich3so3_z) = yy(ich3so3_kpp)
5165 cbox(iho2_z) = yy(iho2_kpp)
5166 cbox(ich3o2_z) = yy(ich3o2_kpp)
5167 cbox(ino3_z) = yy(ino3_kpp)
5168 cbox(ino2_z) = yy(ino2_kpp)
5169 cbox(ino_z) = yy(ino_kpp)
5170 cbox(ioh_z) = yy(ioh_kpp)
5173 end subroutine cbmz_v02r04_mapconcs
5176 !-----------------------------------------------------------------------------
5177 subroutine cbmz_v02r04_maprates( &
5184 ! maps reaction rate constants (host code array --> kpp rconst array)
5185 ! for mechanism-version-regime = cbmz_v02r04
5187 use module_data_cbmz
5191 ! all are host-code reaction-rate-constant arrays [input]
5196 real rconst(nreact_kppmax)
5201 do i = 1, nreact_kppmax
5206 rconst(1) = (rk_m1(1))
5207 rconst(2) = (rk_m1(2))
5208 rconst(3) = (rk_m1(3))
5209 rconst(4) = (rk_m1(4))
5210 rconst(5) = (rk_m1(5))
5211 rconst(6) = (rk_m1(6))
5212 rconst(7) = (rk_m1(7))
5213 rconst(8) = (rk_m1(8))
5214 rconst(9) = (rk_m1(9))
5215 rconst(10) = (rk_m1(10))
5216 rconst(11) = (rk_m1(11))
5217 rconst(12) = (rk_m1(12))
5218 rconst(13) = (rk_m1(13))
5219 rconst(14) = (rk_m1(14))
5220 rconst(15) = (rk_m1(15))
5221 rconst(16) = (rk_m1(16))
5222 rconst(17) = (rk_m1(17))
5223 rconst(18) = (rk_m1(18))
5224 rconst(19) = (rk_m1(19))
5225 rconst(20) = (rk_m1(20))
5226 rconst(21) = (rk_m1(21))
5227 rconst(22) = (rk_m1(22))
5228 rconst(23) = (rk_m1(23))
5229 rconst(24) = (rk_m1(24))
5230 rconst(25) = (rk_m1(25))
5231 rconst(26) = (rk_m1(26))
5232 rconst(27) = (rk_m1(27))
5233 rconst(28) = (rk_m1(28))
5234 rconst(29) = (rk_m1(29))
5235 rconst(30) = (rk_m1(30))
5236 rconst(31) = (rk_m1(31))
5237 rconst(32) = (rk_m1(32))
5238 rconst(33) = (rk_m1(33))
5239 rconst(34) = (rk_m1(34))
5240 rconst(35) = (rk_m1(35))
5241 rconst(36) = (rk_m1(36))
5242 rconst(37) = (rk_m1(37))
5243 rconst(38) = (rk_m1(38))
5244 rconst(39) = (rk_m1(39))
5245 rconst(40) = (rk_m1(40))
5246 rconst(41) = (rk_m1(41))
5247 rconst(42) = (rk_m1(42))
5248 rconst(43) = (rk_m1(43))
5249 rconst(44) = (rk_m1(44))
5250 rconst(45) = (rk_m1(45))
5251 rconst(46) = (rk_m1(46))
5252 rconst(47) = (rk_m1(47))
5253 rconst(48) = (rk_m1(48))
5254 rconst(49) = (rk_m1(49))
5255 rconst(50) = (rk_m1(50))
5256 rconst(51) = (rk_m1(51))
5257 rconst(52) = (rk_m1(52))
5258 rconst(53) = (rk_m1(53))
5259 rconst(54) = (rk_m1(54))
5260 rconst(55) = (rk_m1(55))
5261 rconst(56) = (rk_m1(56))
5262 rconst(57) = (rk_m1(57))
5263 rconst(58) = (rk_m1(58))
5264 rconst(59) = (rk_m1(59))
5265 rconst(60) = (rk_m1(60))
5266 rconst(61) = (rk_m1(61))
5267 rconst(62) = (rk_m1(62))
5268 rconst(63) = (rk_m1(63))
5269 rconst(64) = (rk_m1(64))
5270 rconst(65) = (rk_m1(65))
5271 rconst(66) = (rk_m2(2))
5272 rconst(67) = (rk_m2(3))
5273 rconst(68) = (rk_m2(4))
5274 rconst(69) = (rk_m2(31))
5275 rconst(70) = (rk_m2(32))
5276 rconst(71) = (rk_m2(34))
5277 rconst(72) = (rk_m2(39))
5278 rconst(73) = (rk_m2(44))
5279 rconst(74) = (rk_m2(49))
5280 rconst(75) = (rk_m4(1))
5281 rconst(76) = (rk_m4(2))
5282 rconst(77) = (rk_m4(3))
5283 rconst(78) = (rk_m4(4))
5284 rconst(79) = (rk_m4(5))
5285 rconst(80) = (rk_m4(6))
5286 rconst(81) = (rk_m4(7))
5287 rconst(82) = (rk_m4(8))
5288 rconst(83) = (rk_m4(9))
5289 rconst(84) = (rk_m4(10))
5290 rconst(85) = (rk_m4(11))
5291 rconst(86) = (rk_m4(12))
5292 rconst(87) = (rk_m4(13))
5293 rconst(88) = (rk_m4(14))
5294 rconst(89) = (rk_m4(15))
5295 rconst(90) = (rk_m4(16))
5296 rconst(91) = (rk_m4(17))
5297 rconst(92) = (rk_m4(18))
5298 rconst(93) = (rk_m4(19))
5299 rconst(94) = (rk_m4(20))
5300 rconst(95) = (rk_m4(21))
5301 rconst(96) = (rk_m4(22))
5302 rconst(97) = (rk_m4(23))
5303 rconst(98) = (rk_m4(24))
5304 rconst(99) = (rk_m4(25))
5305 rconst(100) = (rk_m4(26))
5306 rconst(101) = (rk_m4(27))
5307 rconst(102) = (rk_m4(28))
5308 rconst(103) = (rk_m4(29))
5309 rconst(104) = (rk_m4(30))
5310 rconst(105) = (rk_m4(31))
5311 rconst(106) = (rk_m4(32))
5313 end subroutine cbmz_v02r04_maprates
5316 !-----------------------------------------------------------------------------
5317 subroutine cbmz_v02r04_dydt( nvardum, tdum, v, a_var, f, rconst )
5319 ! computes rates of change for mechanism-version-regime = cbmz_v02r04
5321 use module_data_cbmz
5325 ! nvardum = number of variable species [input]
5327 ! tdum = time [input]
5329 ! v = concentrations of variable species [input]
5330 real v(nvar_r04_kpp)
5331 ! a_var = dydt for each species [output]
5332 real a_var(nvar_r04_kpp)
5333 ! f = concentrations of fixed species [input]
5334 real f(nfixed_kppmax)
5335 ! rconst = reaction rate constants [input]
5336 real rconst(nreact_r04_kpp)
5339 ! a = rate for each reaction
5340 real a(nreact_r04_kpp)
5342 ! computation of equation rates
5343 a(1) = rconst(1)*v(37)
5344 a(2) = rconst(2)*v(36)
5345 a(3) = rconst(3)*v(18)
5346 a(4) = rconst(4)*v(24)
5347 a(5) = rconst(5)*v(14)
5348 a(6) = rconst(6)*v(13)
5349 a(7) = rconst(7)*v(31)
5350 a(8) = rconst(8)*v(31)
5351 a(9) = rconst(9)*v(11)
5352 a(10) = rconst(10)*v(5)*f(4)
5353 a(11) = rconst(11)*v(5)*f(5)
5354 a(12) = rconst(12)*v(5)*f(2)
5355 a(13) = rconst(13)*v(30)*f(4)
5356 a(14) = rconst(14)*v(30)*v(31)
5357 a(15) = rconst(15)*v(30)*v(37)
5358 a(16) = rconst(16)*v(30)*v(37)
5359 a(17) = rconst(17)*v(30)*v(38)
5360 a(18) = rconst(18)*v(31)*v(38)
5361 a(19) = rconst(19)*v(31)*v(37)
5362 a(20) = rconst(20)*v(31)*v(39)
5363 a(21) = rconst(21)*v(31)*v(34)
5364 a(22) = rconst(22)*v(39)*f(3)
5365 a(23) = rconst(23)*v(38)*v(39)
5366 a(24) = rconst(24)*v(37)*v(39)
5367 a(25) = rconst(25)*v(36)*v(39)
5368 a(26) = rconst(26)*v(18)*v(39)
5369 a(27) = rconst(27)*v(24)*v(39)
5370 a(28) = rconst(28)*v(14)*v(39)
5371 a(29) = rconst(29)*v(34)*v(39)
5372 a(30) = rconst(30)*v(11)*v(39)
5373 a(31) = rconst(31)*v(34)*v(34)
5374 a(32) = rconst(32)*v(34)*v(34)*f(2)
5375 a(33) = rconst(33)*v(34)*v(38)
5376 a(34) = rconst(34)*v(34)*v(37)
5377 a(35) = rconst(35)*v(34)*v(37)
5378 a(36) = rconst(36)*v(14)
5379 a(37) = rconst(37)*v(36)*v(38)
5380 a(38) = rconst(38)*v(36)*v(37)
5381 a(39) = rconst(39)*v(36)*v(37)
5382 a(40) = rconst(40)*v(36)*v(36)
5383 a(41) = rconst(41)*v(34)*v(36)
5384 a(42) = rconst(42)*v(13)*f(2)
5385 a(43) = rconst(43)*v(13)
5386 a(44) = rconst(44)*v(15)*v(39)
5387 a(45) = rconst(45)*v(7)*v(39)
5388 a(46) = rconst(46)*v(39)*f(1)
5389 a(47) = rconst(47)*v(8)*v(39)
5390 a(48) = rconst(48)*v(12)*v(39)
5391 a(49) = rconst(49)*v(28)
5392 a(50) = rconst(50)*v(28)
5393 a(51) = rconst(51)*v(28)*v(39)
5394 a(52) = rconst(52)*v(28)*v(36)
5395 a(53) = rconst(53)*v(19)
5396 a(54) = rconst(54)*v(17)
5397 a(55) = rconst(55)*v(19)*v(39)
5398 a(56) = rconst(56)*v(17)*v(39)
5399 a(57) = rconst(57)*v(35)*v(38)
5400 a(58) = rconst(58)*v(21)*v(38)
5401 a(59) = rconst(59)*v(35)*v(36)
5402 a(60) = rconst(60)*v(21)*v(36)
5403 a(61) = rconst(61)*v(34)*v(35)
5404 a(62) = rconst(62)*v(21)*v(34)
5405 a(63) = rconst(63)*v(35)
5406 a(64) = rconst(64)*v(21)
5407 a(65) = rconst(65)*v(6)*v(39)
5408 a(66) = rconst(66)*v(22)
5409 a(67) = rconst(67)*v(22)*v(39)
5410 a(68) = rconst(68)*v(22)*v(36)
5411 a(69) = rconst(69)*v(25)*v(37)
5412 a(70) = rconst(70)*v(9)
5413 a(71) = rconst(71)*v(25)*v(38)
5414 a(72) = rconst(72)*v(25)*v(36)
5415 a(73) = rconst(73)*v(25)*v(34)
5416 a(74) = rconst(74)*v(25)
5417 a(75) = rconst(75)*v(26)*v(39)
5418 a(76) = rconst(76)*v(26)*v(36)
5419 a(77) = rconst(77)*v(26)*v(30)
5420 a(78) = rconst(78)*v(26)*v(39)
5421 a(79) = rconst(79)*v(27)*v(38)
5422 a(80) = rconst(80)*v(27)*v(35)
5423 a(81) = rconst(81)*v(27)*v(32)
5424 a(82) = rconst(82)*v(27)*v(27)
5425 a(83) = rconst(83)*v(16)*v(39)
5426 a(84) = rconst(84)*v(10)*v(39)
5427 a(85) = rconst(85)*v(23)*v(38)
5428 a(86) = rconst(86)*v(23)*v(35)
5429 a(87) = rconst(87)*v(29)*v(34)
5430 a(88) = rconst(88)*v(29)*v(36)
5431 a(89) = rconst(89)*v(29)*v(35)
5432 a(90) = rconst(90)*v(29)*v(39)
5433 a(91) = rconst(91)*v(29)*v(33)
5434 a(92) = rconst(92)*v(32)
5435 a(93) = rconst(93)*v(32)*v(37)
5436 a(94) = rconst(94)*v(31)*v(32)
5437 a(95) = rconst(95)*v(32)*v(34)
5438 a(96) = rconst(96)*v(32)*v(35)
5439 a(97) = rconst(97)*v(32)*v(39)
5440 a(98) = rconst(98)*v(32)*f(4)
5441 a(99) = rconst(99)*v(20)
5442 a(100) = rconst(100)*v(20)*v(38)
5443 a(101) = rconst(101)*v(20)*v(35)
5444 a(102) = rconst(102)*v(33)
5445 a(103) = rconst(103)*v(33)*v(37)
5446 a(104) = rconst(104)*v(33)*v(38)
5447 a(105) = rconst(105)*v(33)*v(34)
5448 a(106) = rconst(106)*v(28)*v(33)
5450 ! aggregate function
5451 a_var(1) = a(45)+a(102)
5452 a_var(2) = 0.4*a(73)
5453 a_var(3) = a(91)+a(97)+a(103)+a(104)+a(105)+a(106)
5454 a_var(4) = 0.15*a(82)
5455 a_var(5) = a(8)-a(10)-a(11)-a(12)
5457 a_var(7) = -a(45)+a(92)
5458 a_var(8) = -a(47)+0.2*a(64)
5459 a_var(9) = a(69)-a(70)
5460 a_var(10) = 0.27*a(83)-a(84)
5461 a_var(11) = -a(9)-a(30)+a(31)+a(32)+a(87)
5462 a_var(12) = -a(48)+0.34*a(63)
5463 a_var(13) = -a(6)+a(39)-a(42)-a(43)
5464 a_var(14) = -a(5)-a(28)+a(34)-a(36)
5465 a_var(15) = -a(44)+a(49)+a(50)+a(51)+a(52)+a(66)+a(106)
5466 a_var(16) = 0.965*a(78)-a(83)
5467 a_var(17) = -a(54)-a(56)+a(62)
5468 a_var(18) = -a(3)+a(23)-a(26)+a(35)+a(104)
5469 a_var(19) = -a(53)-a(55)+a(61)+a(89)
5470 a_var(20) = a(98)-a(99)-a(100)-a(101)
5471 a_var(21) = a(47)+0.5*a(56)-a(58)-a(60)-a(62)-a(64)
5472 a_var(22) = a(54)+0.5*a(56)+a(58)+a(60)+0.8*a(64)+a(65)-a(66) &
5474 a_var(23) = a(84)-a(85)-a(86)
5475 a_var(24) = -a(4)+a(24)-a(27)+0.3*a(41)+2*a(42)+a(52)+a(68) &
5477 a_var(25) = a(67)+a(68)-a(69)+a(70)-a(71)-a(72)-a(73)-a(74)
5478 a_var(26) = -a(75)-a(76)-a(77)-a(78)
5479 a_var(27) = a(75)+a(76)-a(79)-a(80)-a(81)-2*a(82)
5480 a_var(28) = a(48)-a(49)-a(50)-a(51)-a(52)+a(53)+0.3*a(55)+a(57) &
5481 +a(59)+0.66*a(63)+a(79)+2*a(80)+a(81)+a(85)+2*a(86) &
5482 +a(96)+a(101)-a(106)
5483 a_var(29) = 0.73*a(83)-a(87)-a(88)-a(89)-a(90)-a(91)
5484 a_var(30) = a(1)+0.89*a(2)+a(7)+a(10)+a(11)-a(13)-a(14)-a(15) &
5486 a_var(31) = -a(7)-a(8)+a(13)-a(14)-a(18)-a(19)-a(20)-a(21)+0.4 &
5488 a_var(32) = a(77)+0.035*a(78)+a(79)+a(80)+1.85*a(82)+a(85)+a(86) &
5489 +a(87)+a(88)+a(89)+a(90)+a(91)-a(92)-a(93)-a(94) &
5490 -a(95)-a(96)-a(97)-a(98)+a(99)
5491 a_var(33) = a(81)-a(91)+a(93)+a(94)+a(95)+a(96)+a(100)+a(101) &
5492 -a(102)-a(103)-a(104)-a(105)-a(106)
5493 a_var(34) = a(5)+a(20)-a(21)+a(22)+a(25)-a(29)+a(30)-2*a(31)-2 &
5494 *a(32)-a(33)-a(34)-a(35)+a(36)-a(41)+a(44)+a(45) &
5495 +a(48)+2*a(49)+a(51)+a(52)+a(53)+a(54)+a(57)+a(58) &
5496 +a(59)+a(60)-a(61)-a(62)+0.32*a(63)+0.6*a(64)+a(65) &
5497 +a(66)-a(73)+0.965*a(78)+a(80)+0.27*a(83)+a(86)-a(87) &
5498 -a(95)+a(96)+a(101)-a(105)+a(106)
5499 a_var(35) = a(46)+0.7*a(55)-a(57)-a(59)-a(61)-a(63)+a(66)+a(71) &
5500 +a(72)+a(74)+a(77)+0.035*a(78)-a(80)+0.73*a(83)-a(86) &
5501 -a(89)+a(92)-a(96)-a(101)+a(102)
5502 a_var(36) = -a(2)+a(6)+a(16)+a(19)-a(25)+a(27)-a(37)-a(38)-a(39) &
5503 -2*a(40)-a(41)+a(43)-a(52)-a(59)-a(60)-a(68)-a(72) &
5505 a_var(37) = -a(1)+0.89*a(2)+a(4)+a(5)+a(6)-a(15)-a(16)+a(17) &
5506 +a(18)-a(19)-a(24)+a(25)+a(26)+a(28)+a(33)-a(34) &
5507 -a(35)+a(36)+2*a(37)-a(39)+2*a(40)+0.7*a(41)+a(43) &
5508 +a(57)+a(58)+a(59)+a(60)-a(69)+a(70)+a(71)+a(72) &
5509 +a(79)+a(85)-a(93)+a(100)-a(103)
5510 a_var(38) = a(1)+0.11*a(2)+a(3)+a(15)-a(17)-a(18)-a(23)-a(33) &
5511 -a(37)+a(38)-a(57)-a(58)-a(71)-a(79)-a(85)+a(93) &
5513 a_var(39) = a(3)+a(4)+2*a(9)+2*a(12)-a(20)+a(21)-a(22)-a(23) &
5514 -a(24)-a(25)-a(26)-a(27)-a(28)-a(29)-a(30)+a(33)+0.7 &
5515 *a(41)-a(44)-a(45)-a(46)-a(47)-a(48)-a(51)+a(53) &
5516 +a(54)-0.7*a(55)-0.5*a(56)-a(65)-a(67)-a(75)-a(78) &
5517 -a(83)-a(84)-a(90)+a(95)-a(97)
5519 end subroutine cbmz_v02r04_dydt
5522 !-----------------------------------------------------------------------------
5523 subroutine cbmz_v02r04_jacob( nvardum, tdum, v, jvs, f, rconst )
5525 ! computes jacobian for mechanism-version-regime = cbmz_v02r04
5527 use module_data_cbmz
5531 ! nvardum = number of variable species [input]
5533 ! tdum = time [input]
5535 ! v = concentrations of variable species [input]
5536 real v(nvar_r04_kpp)
5537 ! jvs = non-zero jacobian elements [output]
5538 real jvs(lu_nonzero_v_r04_kpp)
5539 ! f = concentrations of fixed species [input]
5540 real f(nfixed_kppmax)
5541 ! rconst = reaction rate constants [input]
5542 real rconst(nreact_r04_kpp)
5545 ! b(i,j) = d[reaction_rate(i)] / d[species_conc(j)]
5546 real b(nreact_r04_kpp,nvar_r04_kpp)
5548 ! computation of b(i,j) = da(i)/dv(j)
5558 b(10,5) = rconst(10)*f(4)
5559 b(11,5) = rconst(11)*f(5)
5560 b(12,5) = rconst(12)*f(2)
5561 b(13,30) = rconst(13)*f(4)
5562 b(14,30) = rconst(14)*v(31)
5563 b(14,31) = rconst(14)*v(30)
5564 b(15,30) = rconst(15)*v(37)
5565 b(15,37) = rconst(15)*v(30)
5566 b(16,30) = rconst(16)*v(37)
5567 b(16,37) = rconst(16)*v(30)
5568 b(17,30) = rconst(17)*v(38)
5569 b(17,38) = rconst(17)*v(30)
5570 b(18,31) = rconst(18)*v(38)
5571 b(18,38) = rconst(18)*v(31)
5572 b(19,31) = rconst(19)*v(37)
5573 b(19,37) = rconst(19)*v(31)
5574 b(20,31) = rconst(20)*v(39)
5575 b(20,39) = rconst(20)*v(31)
5576 b(21,31) = rconst(21)*v(34)
5577 b(21,34) = rconst(21)*v(31)
5578 b(22,39) = rconst(22)*f(3)
5579 b(23,38) = rconst(23)*v(39)
5580 b(23,39) = rconst(23)*v(38)
5581 b(24,37) = rconst(24)*v(39)
5582 b(24,39) = rconst(24)*v(37)
5583 b(25,36) = rconst(25)*v(39)
5584 b(25,39) = rconst(25)*v(36)
5585 b(26,18) = rconst(26)*v(39)
5586 b(26,39) = rconst(26)*v(18)
5587 b(27,24) = rconst(27)*v(39)
5588 b(27,39) = rconst(27)*v(24)
5589 b(28,14) = rconst(28)*v(39)
5590 b(28,39) = rconst(28)*v(14)
5591 b(29,34) = rconst(29)*v(39)
5592 b(29,39) = rconst(29)*v(34)
5593 b(30,11) = rconst(30)*v(39)
5594 b(30,39) = rconst(30)*v(11)
5595 b(31,34) = rconst(31)*2*v(34)
5596 b(32,34) = rconst(32)*2*v(34)*f(2)
5597 b(33,34) = rconst(33)*v(38)
5598 b(33,38) = rconst(33)*v(34)
5599 b(34,34) = rconst(34)*v(37)
5600 b(34,37) = rconst(34)*v(34)
5601 b(35,34) = rconst(35)*v(37)
5602 b(35,37) = rconst(35)*v(34)
5603 b(36,14) = rconst(36)
5604 b(37,36) = rconst(37)*v(38)
5605 b(37,38) = rconst(37)*v(36)
5606 b(38,36) = rconst(38)*v(37)
5607 b(38,37) = rconst(38)*v(36)
5608 b(39,36) = rconst(39)*v(37)
5609 b(39,37) = rconst(39)*v(36)
5610 b(40,36) = rconst(40)*2*v(36)
5611 b(41,34) = rconst(41)*v(36)
5612 b(41,36) = rconst(41)*v(34)
5613 b(42,13) = rconst(42)*f(2)
5614 b(43,13) = rconst(43)
5615 b(44,15) = rconst(44)*v(39)
5616 b(44,39) = rconst(44)*v(15)
5617 b(45,7) = rconst(45)*v(39)
5618 b(45,39) = rconst(45)*v(7)
5619 b(46,39) = rconst(46)*f(1)
5620 b(47,8) = rconst(47)*v(39)
5621 b(47,39) = rconst(47)*v(8)
5622 b(48,12) = rconst(48)*v(39)
5623 b(48,39) = rconst(48)*v(12)
5624 b(49,28) = rconst(49)
5625 b(50,28) = rconst(50)
5626 b(51,28) = rconst(51)*v(39)
5627 b(51,39) = rconst(51)*v(28)
5628 b(52,28) = rconst(52)*v(36)
5629 b(52,36) = rconst(52)*v(28)
5630 b(53,19) = rconst(53)
5631 b(54,17) = rconst(54)
5632 b(55,19) = rconst(55)*v(39)
5633 b(55,39) = rconst(55)*v(19)
5634 b(56,17) = rconst(56)*v(39)
5635 b(56,39) = rconst(56)*v(17)
5636 b(57,35) = rconst(57)*v(38)
5637 b(57,38) = rconst(57)*v(35)
5638 b(58,21) = rconst(58)*v(38)
5639 b(58,38) = rconst(58)*v(21)
5640 b(59,35) = rconst(59)*v(36)
5641 b(59,36) = rconst(59)*v(35)
5642 b(60,21) = rconst(60)*v(36)
5643 b(60,36) = rconst(60)*v(21)
5644 b(61,34) = rconst(61)*v(35)
5645 b(61,35) = rconst(61)*v(34)
5646 b(62,21) = rconst(62)*v(34)
5647 b(62,34) = rconst(62)*v(21)
5648 b(63,35) = rconst(63)
5649 b(64,21) = rconst(64)
5650 b(65,6) = rconst(65)*v(39)
5651 b(65,39) = rconst(65)*v(6)
5652 b(66,22) = rconst(66)
5653 b(67,22) = rconst(67)*v(39)
5654 b(67,39) = rconst(67)*v(22)
5655 b(68,22) = rconst(68)*v(36)
5656 b(68,36) = rconst(68)*v(22)
5657 b(69,25) = rconst(69)*v(37)
5658 b(69,37) = rconst(69)*v(25)
5659 b(70,9) = rconst(70)
5660 b(71,25) = rconst(71)*v(38)
5661 b(71,38) = rconst(71)*v(25)
5662 b(72,25) = rconst(72)*v(36)
5663 b(72,36) = rconst(72)*v(25)
5664 b(73,25) = rconst(73)*v(34)
5665 b(73,34) = rconst(73)*v(25)
5666 b(74,25) = rconst(74)
5667 b(75,26) = rconst(75)*v(39)
5668 b(75,39) = rconst(75)*v(26)
5669 b(76,26) = rconst(76)*v(36)
5670 b(76,36) = rconst(76)*v(26)
5671 b(77,26) = rconst(77)*v(30)
5672 b(77,30) = rconst(77)*v(26)
5673 b(78,26) = rconst(78)*v(39)
5674 b(78,39) = rconst(78)*v(26)
5675 b(79,27) = rconst(79)*v(38)
5676 b(79,38) = rconst(79)*v(27)
5677 b(80,27) = rconst(80)*v(35)
5678 b(80,35) = rconst(80)*v(27)
5679 b(81,27) = rconst(81)*v(32)
5680 b(81,32) = rconst(81)*v(27)
5681 b(82,27) = rconst(82)*2*v(27)
5682 b(83,16) = rconst(83)*v(39)
5683 b(83,39) = rconst(83)*v(16)
5684 b(84,10) = rconst(84)*v(39)
5685 b(84,39) = rconst(84)*v(10)
5686 b(85,23) = rconst(85)*v(38)
5687 b(85,38) = rconst(85)*v(23)
5688 b(86,23) = rconst(86)*v(35)
5689 b(86,35) = rconst(86)*v(23)
5690 b(87,29) = rconst(87)*v(34)
5691 b(87,34) = rconst(87)*v(29)
5692 b(88,29) = rconst(88)*v(36)
5693 b(88,36) = rconst(88)*v(29)
5694 b(89,29) = rconst(89)*v(35)
5695 b(89,35) = rconst(89)*v(29)
5696 b(90,29) = rconst(90)*v(39)
5697 b(90,39) = rconst(90)*v(29)
5698 b(91,29) = rconst(91)*v(33)
5699 b(91,33) = rconst(91)*v(29)
5700 b(92,32) = rconst(92)
5701 b(93,32) = rconst(93)*v(37)
5702 b(93,37) = rconst(93)*v(32)
5703 b(94,31) = rconst(94)*v(32)
5704 b(94,32) = rconst(94)*v(31)
5705 b(95,32) = rconst(95)*v(34)
5706 b(95,34) = rconst(95)*v(32)
5707 b(96,32) = rconst(96)*v(35)
5708 b(96,35) = rconst(96)*v(32)
5709 b(97,32) = rconst(97)*v(39)
5710 b(97,39) = rconst(97)*v(32)
5711 b(98,32) = rconst(98)*f(4)
5712 b(99,20) = rconst(99)
5713 b(100,20) = rconst(100)*v(38)
5714 b(100,38) = rconst(100)*v(20)
5715 b(101,20) = rconst(101)*v(35)
5716 b(101,35) = rconst(101)*v(20)
5717 b(102,33) = rconst(102)
5718 b(103,33) = rconst(103)*v(37)
5719 b(103,37) = rconst(103)*v(33)
5720 b(104,33) = rconst(104)*v(38)
5721 b(104,38) = rconst(104)*v(33)
5722 b(105,33) = rconst(105)*v(34)
5723 b(105,34) = rconst(105)*v(33)
5724 b(106,28) = rconst(106)*v(33)
5725 b(106,33) = rconst(106)*v(28)
5727 ! construct the jacobian terms from b's
5733 jvs(6) = 0.4*b(73,25)
5734 jvs(7) = 0.4*b(73,34)
5739 jvs(12) = b(91,33)+b(103,33)+b(104,33)+b(105,33)+b(106,33)
5745 jvs(18) = 0.15*b(82,27)
5746 jvs(19) = -b(10,5)-b(11,5)-b(12,5)
5754 jvs(27) = 0.2*b(64,21)
5760 jvs(33) = 0.27*b(83,16)
5761 jvs(34) = 0.27*b(83,39)-b(84,39)
5762 jvs(35) = -b(9,11)-b(30,11)
5764 jvs(37) = b(31,34)+b(32,34)+b(87,34)
5767 jvs(40) = 0.34*b(63,35)
5769 jvs(42) = -b(6,13)-b(42,13)-b(43,13)
5772 jvs(45) = -b(5,14)-b(28,14)-b(36,14)
5778 jvs(51) = b(49,28)+b(50,28)+b(51,28)+b(52,28)+b(106,28)
5781 jvs(54) = -b(44,39)+b(51,39)
5783 jvs(56) = 0.965*b(78,26)
5784 jvs(57) = 0.965*b(78,39)-b(83,39)
5785 jvs(58) = -b(54,17)-b(56,17)
5789 jvs(62) = -b(3,18)-b(26,18)
5793 jvs(66) = b(23,38)+b(104,38)
5794 jvs(67) = b(23,39)-b(26,39)
5795 jvs(68) = -b(53,19)-b(55,19)
5798 jvs(71) = b(61,35)+b(89,35)
5800 jvs(73) = -b(99,20)-b(100,20)-b(101,20)
5802 jvs(75) = -b(101,35)
5803 jvs(76) = -b(100,38)
5805 jvs(78) = 0.5*b(56,17)
5806 jvs(79) = -b(58,21)-b(60,21)-b(62,21)-b(64,21)
5810 jvs(83) = b(47,39)+0.5*b(56,39)
5812 jvs(85) = b(54,17)+0.5*b(56,17)
5813 jvs(86) = b(58,21)+b(60,21)+0.8*b(64,21)
5814 jvs(87) = -b(66,22)-b(67,22)-b(68,22)
5816 jvs(89) = b(60,36)-b(68,36)
5818 jvs(91) = 0.5*b(56,39)+b(65,39)-b(67,39)
5821 jvs(94) = -b(85,23)-b(86,23)
5826 jvs(99) = 2*b(42,13)
5828 jvs(101) = -b(4,24)-b(27,24)
5832 jvs(105) = b(103,33)
5833 jvs(106) = 0.3*b(41,34)
5834 jvs(107) = 0.3*b(41,36)+b(52,36)+b(68,36)+b(76,36)+b(88,36)
5835 jvs(108) = b(24,37)+b(103,37)
5837 jvs(110) = b(24,39)-b(27,39)
5839 jvs(112) = b(67,22)+b(68,22)
5840 jvs(113) = -b(69,25)-b(71,25)-b(72,25)-b(73,25)-b(74,25)
5841 jvs(114) = -b(73,34)
5842 jvs(115) = b(68,36)-b(72,36)
5843 jvs(116) = -b(69,37)
5844 jvs(117) = -b(71,38)
5846 jvs(119) = -b(75,26)-b(76,26)-b(77,26)-b(78,26)
5847 jvs(120) = -b(77,30)
5848 jvs(121) = -b(76,36)
5849 jvs(122) = -b(75,39)-b(78,39)
5850 jvs(123) = b(75,26)+b(76,26)
5851 jvs(124) = -b(79,27)-b(80,27)-b(81,27)-2*b(82,27)
5853 jvs(126) = -b(81,32)
5854 jvs(127) = -b(80,35)
5856 jvs(129) = -b(79,38)
5859 jvs(132) = b(53,19)+0.3*b(55,19)
5860 jvs(133) = b(101,20)
5861 jvs(134) = b(85,23)+2*b(86,23)
5863 jvs(136) = b(79,27)+2*b(80,27)+b(81,27)
5864 jvs(137) = -b(49,28)-b(50,28)-b(51,28)-b(52,28)-b(106,28)
5867 jvs(140) = b(81,32)+b(96,32)
5868 jvs(141) = -b(106,33)
5870 jvs(143) = b(57,35)+b(59,35)+0.66*b(63,35)+2*b(80,35)+2*b(86,35) &
5872 jvs(144) = -b(52,36)+b(59,36)
5873 jvs(145) = b(57,38)+b(79,38)+b(85,38)
5874 jvs(146) = b(48,39)-b(51,39)+0.3*b(55,39)
5875 jvs(147) = 0.73*b(83,16)
5877 jvs(149) = -b(87,29)-b(88,29)-b(89,29)-b(90,29)-b(91,29)
5879 jvs(151) = -b(91,33)
5880 jvs(152) = -b(87,34)
5881 jvs(153) = -b(89,35)
5882 jvs(154) = -b(88,36)
5883 jvs(155) = 0.73*b(83,39)-b(90,39)
5884 jvs(156) = b(10,5)+b(11,5)
5885 jvs(157) = -b(77,26)
5886 jvs(158) = -b(13,30)-b(14,30)-b(15,30)-b(16,30)-b(17,30) &
5888 jvs(159) = b(7,31)-b(14,31)
5889 jvs(160) = 0.89*b(2,36)
5890 jvs(161) = b(1,37)-b(15,37)-b(16,37)
5891 jvs(162) = -b(17,38)
5893 jvs(164) = 0.4*b(73,25)
5894 jvs(165) = b(13,30)-b(14,30)
5895 jvs(166) = -b(7,31)-b(8,31)-b(14,31)-b(18,31)-b(19,31)-b(20,31) &
5897 jvs(167) = -b(94,32)
5898 jvs(168) = -b(21,34)+0.4*b(73,34)
5900 jvs(170) = -b(19,37)
5901 jvs(171) = -b(18,38)
5902 jvs(172) = -b(20,39)
5904 jvs(174) = b(85,23)+b(86,23)
5905 jvs(175) = b(77,26)+0.035*b(78,26)
5906 jvs(176) = b(79,27)+b(80,27)+1.85*b(82,27)
5907 jvs(177) = b(87,29)+b(88,29)+b(89,29)+b(90,29)+b(91,29)
5909 jvs(179) = -b(94,31)
5910 jvs(180) = -b(92,32)-b(93,32)-b(94,32)-b(95,32)-b(96,32) &
5913 jvs(182) = b(87,34)-b(95,34)
5914 jvs(183) = b(80,35)+b(86,35)+b(89,35)-b(96,35)
5916 jvs(185) = -b(93,37)
5917 jvs(186) = b(79,38)+b(85,38)
5918 jvs(187) = 0.035*b(78,39)+b(90,39)-b(97,39)
5919 jvs(188) = b(100,20)+b(101,20)
5921 jvs(190) = -b(106,28)
5922 jvs(191) = -b(91,29)
5925 jvs(194) = b(81,32)+b(93,32)+b(94,32)+b(95,32)+b(96,32)
5926 jvs(195) = -b(91,33)-b(102,33)-b(103,33)-b(104,33)-b(105,33) &
5928 jvs(196) = b(95,34)-b(105,34)
5929 jvs(197) = b(96,35)+b(101,35)
5931 jvs(199) = b(93,37)-b(103,37)
5932 jvs(200) = b(100,38)-b(104,38)
5938 jvs(206) = b(5,14)+b(36,14)
5940 jvs(208) = 0.27*b(83,16)
5943 jvs(211) = b(101,20)
5944 jvs(212) = b(58,21)+b(60,21)-b(62,21)+0.6*b(64,21)
5947 jvs(215) = -b(73,25)
5948 jvs(216) = 0.965*b(78,26)
5950 jvs(218) = 2*b(49,28)+b(51,28)+b(52,28)+b(106,28)
5951 jvs(219) = -b(87,29)
5953 jvs(221) = b(20,31)-b(21,31)
5954 jvs(222) = -b(95,32)+b(96,32)
5955 jvs(223) = -b(105,33)+b(106,33)
5956 jvs(224) = -b(21,34)-b(29,34)-2*b(31,34)-2*b(32,34)-b(33,34) &
5957 -b(34,34)-b(35,34)-b(41,34)-b(61,34)-b(62,34)-b(73,34) &
5958 -b(87,34)-b(95,34)-b(105,34)
5959 jvs(225) = b(57,35)+b(59,35)-b(61,35)+0.32*b(63,35)+b(80,35) &
5960 +b(86,35)+b(96,35)+b(101,35)
5961 jvs(226) = b(25,36)-b(41,36)+b(52,36)+b(59,36)+b(60,36)
5962 jvs(227) = -b(34,37)-b(35,37)
5963 jvs(228) = -b(33,38)+b(57,38)+b(58,38)
5964 jvs(229) = b(20,39)+b(22,39)+b(25,39)-b(29,39)+b(30,39)+b(44,39) &
5965 +b(45,39)+b(48,39)+b(51,39)+b(65,39)+0.965*b(78,39) &
5967 jvs(230) = 0.73*b(83,16)
5968 jvs(231) = 0.7*b(55,19)
5969 jvs(232) = -b(101,20)
5971 jvs(234) = -b(86,23)
5972 jvs(235) = b(71,25)+b(72,25)+b(74,25)
5973 jvs(236) = b(77,26)+0.035*b(78,26)
5974 jvs(237) = -b(80,27)
5975 jvs(238) = -b(89,29)
5978 jvs(241) = b(92,32)-b(96,32)
5979 jvs(242) = b(102,33)
5980 jvs(243) = -b(61,34)
5981 jvs(244) = -b(57,35)-b(59,35)-b(61,35)-b(63,35)-b(80,35) &
5982 -b(86,35)-b(89,35)-b(96,35)-b(101,35)
5983 jvs(245) = -b(59,36)+b(72,36)
5985 jvs(247) = -b(57,38)+b(71,38)
5986 jvs(248) = b(46,39)+0.7*b(55,39)+0.035*b(78,39)+0.73*b(83,39)
5987 jvs(249) = b(6,13)+b(43,13)
5988 jvs(250) = -b(60,21)
5989 jvs(251) = -b(68,22)
5991 jvs(253) = -b(72,25)
5992 jvs(254) = -b(76,26)
5993 jvs(255) = -b(52,28)
5994 jvs(256) = -b(88,29)
5999 jvs(261) = -b(41,34)
6000 jvs(262) = -b(59,35)
6002 jvs(264) = b(16,37)+b(19,37)-b(38,37)-b(39,37)
6003 jvs(265) = -b(37,38)
6004 jvs(266) = -b(25,39)+b(27,39)
6006 jvs(268) = b(6,13)+b(43,13)
6007 jvs(269) = b(5,14)+b(28,14)+b(36,14)
6009 jvs(271) = b(100,20)
6010 jvs(272) = b(58,21)+b(60,21)
6013 jvs(275) = -b(69,25)+b(71,25)+b(72,25)
6018 jvs(280) = -b(15,30)-b(16,30)+b(17,30)
6019 jvs(281) = b(18,31)-b(19,31)
6020 jvs(282) = -b(93,32)
6021 jvs(283) = -b(103,33)
6022 jvs(284) = b(33,34)-b(34,34)-b(35,34)+0.7*b(41,34)
6023 jvs(285) = b(57,35)+b(59,35)
6024 jvs(286) = -b(1,37)-b(15,37)-b(16,37)-b(19,37)-b(24,37)-b(34,37) &
6025 -b(35,37)-b(39,37)-b(69,37)-b(93,37)-b(103,37)
6026 jvs(287) = b(17,38)+b(18,38)+b(33,38)+2*b(37,38)+b(57,38) &
6027 +b(58,38)+b(71,38)+b(79,38)+b(85,38)+b(100,38)
6028 jvs(288) = -b(24,39)+b(25,39)+b(26,39)+b(28,39)
6030 jvs(290) = -b(100,20)
6031 jvs(291) = -b(58,21)
6032 jvs(292) = -b(85,23)
6033 jvs(293) = -b(71,25)
6035 jvs(295) = -b(79,27)
6036 jvs(296) = b(15,30)-b(17,30)
6037 jvs(297) = -b(18,31)
6039 jvs(299) = -b(104,33)
6040 jvs(300) = -b(33,34)
6041 jvs(301) = -b(57,35)
6042 jvs(302) = 0.11*b(2,36)-b(37,36)+b(38,36)
6043 jvs(303) = b(1,37)+b(15,37)+b(38,37)+b(93,37)
6044 jvs(304) = -b(17,38)-b(18,38)-b(23,38)-b(33,38)-b(37,38) &
6045 -b(57,38)-b(58,38)-b(71,38)-b(79,38)-b(85,38) &
6046 -b(100,38)-b(104,38)
6047 jvs(305) = -b(23,39)
6048 jvs(306) = 2*b(12,5)
6052 jvs(310) = -b(84,10)
6053 jvs(311) = 2*b(9,11)-b(30,11)
6054 jvs(312) = -b(48,12)
6055 jvs(313) = -b(28,14)
6056 jvs(314) = -b(44,15)
6057 jvs(315) = -b(83,16)
6058 jvs(316) = b(54,17)-0.5*b(56,17)
6059 jvs(317) = b(3,18)-b(26,18)
6060 jvs(318) = b(53,19)-0.7*b(55,19)
6062 jvs(320) = -b(67,22)
6063 jvs(321) = b(4,24)-b(27,24)
6064 jvs(322) = -b(75,26)-b(78,26)
6065 jvs(323) = -b(51,28)
6066 jvs(324) = -b(90,29)
6068 jvs(326) = -b(20,31)+b(21,31)
6069 jvs(327) = b(95,32)-b(97,32)
6071 jvs(329) = b(21,34)-b(29,34)+b(33,34)+0.7*b(41,34)+b(95,34)
6073 jvs(331) = -b(25,36)+0.7*b(41,36)
6074 jvs(332) = -b(24,37)
6075 jvs(333) = -b(23,38)+b(33,38)
6076 jvs(334) = -b(20,39)-b(22,39)-b(23,39)-b(24,39)-b(25,39) &
6077 -b(26,39)-b(27,39)-b(28,39)-b(29,39)-b(30,39)-b(44,39) &
6078 -b(45,39)-b(46,39)-b(47,39)-b(48,39)-b(51,39)-0.7 &
6079 *b(55,39)-0.5*b(56,39)-b(65,39)-b(67,39)-b(75,39) &
6080 -b(78,39)-b(83,39)-b(84,39)-b(90,39)-b(97,39)
6082 end subroutine cbmz_v02r04_jacob
6085 !-----------------------------------------------------------------------------
6086 subroutine cbmz_v02r04_decomp( n, v, ier, &
6087 lu_crow_v, lu_diag_v, lu_icol_v )
6089 ! computes l-u-decomposition of sparse jacobian
6090 ! for mechanism-version-regime = cbmz_v02r04
6092 use module_data_cbmz
6096 ! n = number of variable species [input]
6098 ! ier = status flag [output]
6099 ! 0 = success other = failure [output]
6102 ! v = non-zero elements of the sparse jacobian [input]
6103 real v(lu_nonzero_v_r04_kpp)
6105 integer lu_crow_v(nvar_r04_kpp + 1)
6106 integer lu_diag_v(nvar_r04_kpp + 1)
6107 integer lu_icol_v(lu_nonzero_v_r04_kpp)
6110 integer k, kk, j, jj
6111 real a, w(nvar_r04_kpp + 1)
6115 if ( v( lu_diag_v(k) ) .eq. 0. ) then
6119 do kk = lu_crow_v(k), lu_crow_v(k+1)-1
6120 w( lu_icol_v(kk) ) = v(kk)
6122 do kk = lu_crow_v(k), lu_diag_v(k)-1
6124 a = -w(j) / v( lu_diag_v(j) )
6126 do jj = lu_diag_v(j)+1, lu_crow_v(j+1)-1
6127 w( lu_icol_v(jj) ) = w( lu_icol_v(jj) ) + a*v(jj)
6130 do kk = lu_crow_v(k), lu_crow_v(k+1)-1
6131 v(kk) = w( lu_icol_v(kk) )
6135 end subroutine cbmz_v02r04_decomp
6138 !-----------------------------------------------------------------------------
6139 subroutine cbmz_v02r04_solve( jvs, x )
6141 ! does back-solve for mechanism-version-regime = cbmz_v02r04
6146 ! jvs = the non-zero elements of the l-u-decomposition
6147 ! of the augmented jacobian [input]
6149 ! x = the right-hand side of the linear equation set being solved [on input]
6150 ! x = concentrations of variable species [on output]
6154 x(21) = x(21)-jvs(77)*x(8)-jvs(78)*x(17)
6155 x(22) = x(22)-jvs(84)*x(6)-jvs(85)*x(17)-jvs(86)*x(21)
6156 x(23) = x(23)-jvs(92)*x(10)-jvs(93)*x(16)
6157 x(24) = x(24)-jvs(99)*x(13)-jvs(100)*x(22)
6158 x(25) = x(25)-jvs(111)*x(9)-jvs(112)*x(22)
6159 x(27) = x(27)-jvs(123)*x(26)
6160 x(28) = x(28)-jvs(131)*x(12)-jvs(132)*x(19)-jvs(133)*x(20) &
6161 -jvs(134)*x(23)-jvs(135)*x(26)-jvs(136)*x(27)
6162 x(29) = x(29)-jvs(147)*x(16)-jvs(148)*x(26)
6163 x(30) = x(30)-jvs(156)*x(5)-jvs(157)*x(26)
6164 x(31) = x(31)-jvs(164)*x(25)-jvs(165)*x(30)
6165 x(32) = x(32)-jvs(173)*x(20)-jvs(174)*x(23)-jvs(175)*x(26) &
6166 -jvs(176)*x(27)-jvs(177)*x(29)-jvs(178)*x(30)-jvs(179) &
6168 x(33) = x(33)-jvs(188)*x(20)-jvs(189)*x(27)-jvs(190)*x(28) &
6169 -jvs(191)*x(29)-jvs(192)*x(30)-jvs(193)*x(31)-jvs(194) &
6171 x(34) = x(34)-jvs(202)*x(6)-jvs(203)*x(7)-jvs(204)*x(11) &
6172 -jvs(205)*x(12)-jvs(206)*x(14)-jvs(207)*x(15)-jvs(208) &
6173 *x(16)-jvs(209)*x(17)-jvs(210)*x(19)-jvs(211)*x(20) &
6174 -jvs(212)*x(21)-jvs(213)*x(22)-jvs(214)*x(23)-jvs(215) &
6175 *x(25)-jvs(216)*x(26)-jvs(217)*x(27)-jvs(218)*x(28) &
6176 -jvs(219)*x(29)-jvs(220)*x(30)-jvs(221)*x(31)-jvs(222) &
6177 *x(32)-jvs(223)*x(33)
6178 x(35) = x(35)-jvs(230)*x(16)-jvs(231)*x(19)-jvs(232)*x(20) &
6179 -jvs(233)*x(22)-jvs(234)*x(23)-jvs(235)*x(25)-jvs(236) &
6180 *x(26)-jvs(237)*x(27)-jvs(238)*x(29)-jvs(239)*x(30) &
6181 -jvs(240)*x(31)-jvs(241)*x(32)-jvs(242)*x(33)-jvs(243) &
6183 x(36) = x(36)-jvs(249)*x(13)-jvs(250)*x(21)-jvs(251)*x(22) &
6184 -jvs(252)*x(24)-jvs(253)*x(25)-jvs(254)*x(26)-jvs(255) &
6185 *x(28)-jvs(256)*x(29)-jvs(257)*x(30)-jvs(258)*x(31) &
6186 -jvs(259)*x(32)-jvs(260)*x(33)-jvs(261)*x(34)-jvs(262) &
6188 x(37) = x(37)-jvs(267)*x(9)-jvs(268)*x(13)-jvs(269)*x(14) &
6189 -jvs(270)*x(18)-jvs(271)*x(20)-jvs(272)*x(21)-jvs(273) &
6190 *x(23)-jvs(274)*x(24)-jvs(275)*x(25)-jvs(276)*x(26) &
6191 -jvs(277)*x(27)-jvs(278)*x(28)-jvs(279)*x(29)-jvs(280) &
6192 *x(30)-jvs(281)*x(31)-jvs(282)*x(32)-jvs(283)*x(33) &
6193 -jvs(284)*x(34)-jvs(285)*x(35)
6194 x(38) = x(38)-jvs(289)*x(18)-jvs(290)*x(20)-jvs(291)*x(21) &
6195 -jvs(292)*x(23)-jvs(293)*x(25)-jvs(294)*x(26)-jvs(295) &
6196 *x(27)-jvs(296)*x(30)-jvs(297)*x(31)-jvs(298)*x(32) &
6197 -jvs(299)*x(33)-jvs(300)*x(34)-jvs(301)*x(35)-jvs(302) &
6198 *x(36)-jvs(303)*x(37)
6199 x(39) = x(39)-jvs(306)*x(5)-jvs(307)*x(6)-jvs(308)*x(7)-jvs(309) &
6200 *x(8)-jvs(310)*x(10)-jvs(311)*x(11)-jvs(312)*x(12) &
6201 -jvs(313)*x(14)-jvs(314)*x(15)-jvs(315)*x(16)-jvs(316) &
6202 *x(17)-jvs(317)*x(18)-jvs(318)*x(19)-jvs(319)*x(21) &
6203 -jvs(320)*x(22)-jvs(321)*x(24)-jvs(322)*x(26)-jvs(323) &
6204 *x(28)-jvs(324)*x(29)-jvs(325)*x(30)-jvs(326)*x(31) &
6205 -jvs(327)*x(32)-jvs(328)*x(33)-jvs(329)*x(34)-jvs(330) &
6206 *x(35)-jvs(331)*x(36)-jvs(332)*x(37)-jvs(333)*x(38)
6207 x(39) = x(39)/jvs(334)
6208 x(38) = (x(38)-jvs(305)*x(39))/(jvs(304))
6209 x(37) = (x(37)-jvs(287)*x(38)-jvs(288)*x(39))/(jvs(286))
6210 x(36) = (x(36)-jvs(264)*x(37)-jvs(265)*x(38)-jvs(266)*x(39))/ &
6212 x(35) = (x(35)-jvs(245)*x(36)-jvs(246)*x(37)-jvs(247)*x(38) &
6213 -jvs(248)*x(39))/(jvs(244))
6214 x(34) = (x(34)-jvs(225)*x(35)-jvs(226)*x(36)-jvs(227)*x(37) &
6215 -jvs(228)*x(38)-jvs(229)*x(39))/(jvs(224))
6216 x(33) = (x(33)-jvs(196)*x(34)-jvs(197)*x(35)-jvs(198)*x(36) &
6217 -jvs(199)*x(37)-jvs(200)*x(38)-jvs(201)*x(39))/(jvs(195))
6218 x(32) = (x(32)-jvs(181)*x(33)-jvs(182)*x(34)-jvs(183)*x(35) &
6219 -jvs(184)*x(36)-jvs(185)*x(37)-jvs(186)*x(38)-jvs(187) &
6221 x(31) = (x(31)-jvs(167)*x(32)-jvs(168)*x(34)-jvs(169)*x(36) &
6222 -jvs(170)*x(37)-jvs(171)*x(38)-jvs(172)*x(39))/(jvs(166))
6223 x(30) = (x(30)-jvs(159)*x(31)-jvs(160)*x(36)-jvs(161)*x(37) &
6224 -jvs(162)*x(38)-jvs(163)*x(39))/(jvs(158))
6225 x(29) = (x(29)-jvs(150)*x(30)-jvs(151)*x(33)-jvs(152)*x(34) &
6226 -jvs(153)*x(35)-jvs(154)*x(36)-jvs(155)*x(39))/(jvs(149))
6227 x(28) = (x(28)-jvs(138)*x(29)-jvs(139)*x(30)-jvs(140)*x(32) &
6228 -jvs(141)*x(33)-jvs(142)*x(34)-jvs(143)*x(35)-jvs(144) &
6229 *x(36)-jvs(145)*x(38)-jvs(146)*x(39))/(jvs(137))
6230 x(27) = (x(27)-jvs(125)*x(30)-jvs(126)*x(32)-jvs(127)*x(35) &
6231 -jvs(128)*x(36)-jvs(129)*x(38)-jvs(130)*x(39))/(jvs(124))
6232 x(26) = (x(26)-jvs(120)*x(30)-jvs(121)*x(36)-jvs(122)*x(39))/ &
6234 x(25) = (x(25)-jvs(114)*x(34)-jvs(115)*x(36)-jvs(116)*x(37) &
6235 -jvs(117)*x(38)-jvs(118)*x(39))/(jvs(113))
6236 x(24) = (x(24)-jvs(102)*x(26)-jvs(103)*x(28)-jvs(104)*x(29) &
6237 -jvs(105)*x(33)-jvs(106)*x(34)-jvs(107)*x(36)-jvs(108) &
6238 *x(37)-jvs(109)*x(38)-jvs(110)*x(39))/(jvs(101))
6239 x(23) = (x(23)-jvs(95)*x(26)-jvs(96)*x(35)-jvs(97)*x(38)-jvs(98) &
6241 x(22) = (x(22)-jvs(88)*x(34)-jvs(89)*x(36)-jvs(90)*x(38)-jvs(91) &
6243 x(21) = (x(21)-jvs(80)*x(34)-jvs(81)*x(36)-jvs(82)*x(38)-jvs(83) &
6245 x(20) = (x(20)-jvs(74)*x(32)-jvs(75)*x(35)-jvs(76)*x(38))/ &
6247 x(19) = (x(19)-jvs(69)*x(29)-jvs(70)*x(34)-jvs(71)*x(35)-jvs(72) &
6249 x(18) = (x(18)-jvs(63)*x(33)-jvs(64)*x(34)-jvs(65)*x(37)-jvs(66) &
6250 *x(38)-jvs(67)*x(39))/(jvs(62))
6251 x(17) = (x(17)-jvs(59)*x(21)-jvs(60)*x(34)-jvs(61)*x(39))/ &
6253 x(16) = (x(16)-jvs(56)*x(26)-jvs(57)*x(39))/(jvs(55))
6254 x(15) = (x(15)-jvs(50)*x(22)-jvs(51)*x(28)-jvs(52)*x(33)-jvs(53) &
6255 *x(36)-jvs(54)*x(39))/(jvs(49))
6256 x(14) = (x(14)-jvs(46)*x(34)-jvs(47)*x(37)-jvs(48)*x(39))/ &
6258 x(13) = (x(13)-jvs(43)*x(36)-jvs(44)*x(37))/(jvs(42))
6259 x(12) = (x(12)-jvs(40)*x(35)-jvs(41)*x(39))/(jvs(39))
6260 x(11) = (x(11)-jvs(36)*x(29)-jvs(37)*x(34)-jvs(38)*x(39))/ &
6262 x(10) = (x(10)-jvs(33)*x(16)-jvs(34)*x(39))/(jvs(32))
6263 x(9) = (x(9)-jvs(30)*x(25)-jvs(31)*x(37))/(jvs(29))
6264 x(8) = (x(8)-jvs(27)*x(21)-jvs(28)*x(39))/(jvs(26))
6265 x(7) = (x(7)-jvs(24)*x(32)-jvs(25)*x(39))/(jvs(23))
6266 x(6) = (x(6)-jvs(22)*x(39))/(jvs(21))
6267 x(5) = (x(5)-jvs(20)*x(31))/(jvs(19))
6268 x(4) = (x(4)-jvs(18)*x(27))/(jvs(17))
6269 x(3) = (x(3)-jvs(9)*x(28)-jvs(10)*x(29)-jvs(11)*x(32)-jvs(12) &
6270 *x(33)-jvs(13)*x(34)-jvs(14)*x(37)-jvs(15)*x(38)-jvs(16) &
6272 x(2) = (x(2)-jvs(6)*x(25)-jvs(7)*x(34))/(jvs(5))
6273 x(1) = (x(1)-jvs(2)*x(7)-jvs(3)*x(33)-jvs(4)*x(39))/(jvs(1))
6275 end subroutine cbmz_v02r04_solve
6278 ! cbmz_v02r05_torodas.f - created on 18-nov-2003 from previous
6279 ! cbmz_v02r05_torodas.f cbmz_v02r05_mapconcs.f
6280 ! cbmz_v02r05_maprates.f cbmz_v02r05_dydt.f
6281 ! cbmz_v02r05_jacob.f cbmz_v02r05_decomp.f
6282 ! cbmz_v02r05_solve.f
6283 ! so now everything is in a single file
6284 !-----------------------------------------------------------------------
6286 subroutine cbmz_v02r05_torodas( &
6288 stot, atol, rtol, yposlimit, yneglimit, &
6289 sfixedkpp, rconstkpp, &
6291 info_rodas, iok, lunerr, idydt_sngldble )
6293 ! interfaces to rodas3 solver formechanism-version-regime =cbmz_v02r05
6295 ! *** do not include any pegasus common blocks ***
6297 use module_data_cbmz
6298 use module_cbmz_rodas3_solver, only: rodas3_ff_x2
6302 integer ngas, iok, lunerr, idydt_sngldble
6303 integer info_rodas(6)
6304 real taa, tzz, hmin, hstart
6305 real stot(ngas), atol(ngas), rtol(ngas)
6306 real yposlimit(ngas), yneglimit(ngas)
6307 real sfixedkpp(nfixed_kppmax), rconstkpp(nreact_kppmax)
6311 ! external cbmz_v02r05_dydt
6312 ! external cbmz_v02r05_jacob
6313 ! external cbmz_v02r05_decomp
6314 ! external cbmz_v02r05_solve
6320 integer lu_crow_v(nvar_r05_kpp + 1)
6322 integer lu_diag_v(nvar_r05_kpp + 1)
6324 integer lu_icol_v(lu_nonzero_v_r05_kpp)
6327 data( lu_icol_v(i), i = 1, 252 ) / &
6328 1, 8, 52, 59, 2, 22, 36, 51, 3, 36, 39, 46, &
6329 51, 56, 4, 42, 47, 52, 53, 54, 55, 56, 59, 5, &
6330 38, 6, 51, 7, 59, 8, 54, 59, 9, 41, 59, 10, &
6331 46, 53, 11, 20, 59, 12, 59, 13, 42, 56, 59, 14, &
6332 53, 57, 15, 59, 15, 16, 27, 59, 17, 26, 53, 57, &
6333 59, 18, 53, 56, 59, 12, 15, 19, 55, 59, 20, 34, &
6334 59, 21, 41, 56, 59, 22, 51, 59, 23, 36, 39, 51, &
6335 58, 59, 24, 52, 53, 55, 56, 59, 25, 42, 56, 58, &
6336 59, 12, 15, 26, 57, 59, 16, 27, 33, 36, 39, 44, &
6337 49, 50, 51, 55, 57, 59, 22, 28, 32, 36, 39, 40, &
6338 45, 47, 51, 52, 57, 59, 29, 54, 55, 58, 11, 20, &
6339 30, 34, 55, 58, 59, 14, 26, 31, 34, 40, 42, 45, &
6340 47, 52, 53, 56, 57, 59, 19, 26, 32, 51, 55, 57, &
6341 59, 33, 48, 49, 56, 59, 34, 43, 57, 59, 33, 35, &
6342 39, 48, 49, 50, 51, 55, 56, 57, 59, 36, 51, 57, &
6343 59, 12, 15, 22, 26, 32, 33, 36, 37, 39, 40, 48, &
6344 49, 50, 51, 55, 56, 57, 59, 34, 38, 43, 54, 55, &
6345 57, 58, 59, 39, 51, 57, 59, 15, 32, 33, 36, 39, &
6346 40, 48, 49, 51, 55, 56, 57, 59, 9, 21, 33, 36, &
6347 39, 41, 48, 49, 50, 51, 55, 56, 57, 59, 20, 34, &
6348 42, 43, 52, 56, 57, 58, 59, 6, 34, 43, 51, 53 /
6350 data( lu_icol_v(i), i = 253, 504 ) / &
6351 55, 57, 59, 36, 39, 44, 50, 51, 55, 56, 57, 59, &
6352 7, 21, 22, 32, 33, 36, 39, 41, 44, 45, 48, 49, &
6353 50, 51, 55, 56, 57, 59, 10, 32, 35, 36, 39, 40, &
6354 45, 46, 48, 49, 50, 51, 53, 55, 56, 57, 59, 22, &
6355 23, 25, 29, 30, 32, 34, 36, 38, 39, 42, 43, 44, &
6356 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, &
6357 35, 39, 48, 49, 50, 51, 55, 56, 57, 59, 16, 27, &
6358 33, 36, 39, 44, 48, 49, 50, 51, 55, 56, 57, 59, &
6359 17, 19, 26, 44, 49, 50, 51, 53, 55, 56, 57, 59, &
6360 22, 32, 36, 39, 43, 46, 48, 49, 50, 51, 53, 54, &
6361 55, 56, 57, 59, 29, 38, 42, 43, 47, 48, 49, 50, &
6362 51, 52, 53, 54, 55, 56, 57, 58, 59, 10, 14, 17, &
6363 18, 19, 24, 26, 29, 30, 31, 34, 37, 38, 39, 40, &
6364 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, &
6365 53, 54, 55, 56, 58, 59, 29, 30, 34, 38, 42, 43, &
6366 51, 52, 53, 54, 55, 56, 57, 58, 59, 19, 24, 29, &
6367 30, 34, 37, 38, 39, 40, 41, 43, 44, 46, 48, 49, &
6368 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 7, 8, &
6369 12, 13, 15, 18, 19, 20, 21, 22, 23, 25, 26, 28, &
6370 29, 30, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, &
6371 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 /
6373 data( lu_icol_v(i), i = 505, 606 ) / &
6374 55, 56, 57, 58, 59, 14, 26, 31, 34, 36, 37, 39, &
6375 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, &
6376 52, 53, 54, 55, 56, 57, 58, 59, 20, 25, 29, 30, &
6377 34, 35, 36, 38, 39, 42, 43, 45, 46, 48, 49, 50, &
6378 51, 52, 53, 54, 55, 56, 57, 58, 59, 6, 7, 8, &
6379 9, 11, 12, 13, 15, 16, 18, 20, 21, 22, 23, 24, &
6380 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, &
6381 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, &
6382 54, 55, 56, 57, 58, 59 /
6385 1, 5, 9, 15, 24, 26, 28, 30, 33, 36, 39, 42, &
6386 44, 48, 51, 53, 57, 62, 66, 71, 74, 78, 81, 87, &
6387 93, 98,103,115,127,131,138,151,158,163,167,178, &
6388 182,200,208,212,225,239,248,256,265,283,300,325, &
6389 335,349,361,377,394,427,442,467,510,537,562,607 &
6393 1, 5, 9, 15, 24, 26, 28, 30, 33, 36, 39, 42, &
6394 44, 48, 51, 54, 57, 62, 68, 71, 74, 78, 81, 87, &
6395 93,100,104,116,127,133,140,153,158,163,168,178, &
6396 189,201,208,217,230,241,250,258,274,290,313,327, &
6397 342,354,370,386,421,436,462,506,534,560,606,607 &
6408 ! do not integrate if hmax is less/equal to hmin
6409 ! because hmin is generally 0.1 s or less
6410 if (hmax .le. 1.001*hmin) then
6415 call rodas3_ff_x2( &
6416 nvar_r05_kpp, taa, tzz, hmin, hmax, hstart, &
6417 stot, atol, rtol, yposlimit, yneglimit, &
6418 sfixedkpp, rconstkpp, &
6419 lu_nonzero_v_r05_kpp, lu_crow_v, lu_diag_v, lu_icol_v, &
6420 info_rodas, iok, lunerr, &
6422 cbmz_v02r05_jacob, &
6423 cbmz_v02r05_decomp, &
6427 end subroutine cbmz_v02r05_torodas
6430 !-----------------------------------------------------------------------------
6431 subroutine cbmz_v02r05_mapconcs( imap, nyy, yy, yyfixed, cbox )
6433 ! maps species concentrations (gaschemistry cbox array <--> kpp yy array)
6434 ! for mechanism-version-regime = cbmz_v02r05
6436 use module_data_cbmz
6440 ! imap = mapping direction flag [input]
6441 ! 0 = map cbox --> yy and yyfixed
6442 ! 1 = map yy --> cbox
6444 ! nyy = number of kpp "variable" species [output]
6446 ! yy = kpp species concentrations array [input/output]
6447 real yy(nvar_r05_kpp)
6448 ! yyfixed = kpp species concentrations array [input/output]
6449 real yyfixed(nfixed_kppmax)
6450 ! cbox = main gaschemistry species conc array [input/output]
6455 parameter ( ih2so4_kpp = 1 )
6457 parameter ( ihcooh_kpp = 2 )
6459 parameter ( ircooh_kpp = 3 )
6461 parameter ( imsa_kpp = 4 )
6463 parameter ( imtf_kpp = 5 )
6465 parameter ( io1d_kpp = 6 )
6467 parameter ( ic2h5oh_kpp = 7 )
6469 parameter ( iso2_kpp = 8 )
6471 parameter ( ic2h6_kpp = 9 )
6473 parameter ( ipan_kpp = 10 )
6475 parameter ( idmso2_kpp = 11 )
6477 parameter ( itol_kpp = 12 )
6479 parameter ( ih2o2_kpp = 13 )
6481 parameter ( in2o5_kpp = 14 )
6483 parameter ( ixyl_kpp = 15 )
6485 parameter ( ipar_kpp = 16 )
6487 parameter ( icro_kpp = 17 )
6489 parameter ( ihno4_kpp = 18 )
6491 parameter ( ito2_kpp = 19 )
6493 parameter ( idmso_kpp = 20 )
6495 parameter ( iethooh_kpp = 21 )
6497 parameter ( ieth_kpp = 22 )
6499 parameter ( ich3oh_kpp = 23 )
6501 parameter ( ihono_kpp = 24 )
6503 parameter ( ich3ooh_kpp = 25 )
6505 parameter ( icres_kpp = 26 )
6507 parameter ( ixpar_kpp = 27 )
6509 parameter ( ico_kpp = 28 )
6510 integer ich3so2oo_kpp
6511 parameter ( ich3so2oo_kpp = 29 )
6512 integer ich3so2ch2oo_kpp
6513 parameter ( ich3so2ch2oo_kpp = 30 )
6515 parameter ( ihno3_kpp = 31 )
6517 parameter ( iopen_kpp = 32 )
6519 parameter ( irooh_kpp = 33 )
6521 parameter ( idms_kpp = 34 )
6523 parameter ( iaone_kpp = 35 )
6525 parameter ( iolet_kpp = 36 )
6527 parameter ( ixo2_kpp = 37 )
6528 integer ich3sch2oo_kpp
6529 parameter ( ich3sch2oo_kpp = 38 )
6531 parameter ( iolei_kpp = 39 )
6533 parameter ( imgly_kpp = 40 )
6535 parameter ( iethp_kpp = 41 )
6536 integer ich3so2h_kpp
6537 parameter ( ich3so2h_kpp = 42 )
6539 parameter ( io3p_kpp = 43 )
6541 parameter ( inap_kpp = 44 )
6543 parameter ( iald2_kpp = 45 )
6545 parameter ( ic2o3_kpp = 46 )
6547 parameter ( ihcho_kpp = 47 )
6549 parameter ( iano2_kpp = 48 )
6551 parameter ( iro2_kpp = 49 )
6553 parameter ( ionit_kpp = 50 )
6555 parameter ( io3_kpp = 51 )
6557 parameter ( ich3so3_kpp = 52 )
6559 parameter ( ino2_kpp = 53 )
6561 parameter ( ich3so2_kpp = 54 )
6563 parameter ( ino_kpp = 55 )
6565 parameter ( iho2_kpp = 56 )
6567 parameter ( ino3_kpp = 57 )
6569 parameter ( ich3o2_kpp = 58 )
6571 parameter ( ioh_kpp = 59 )
6573 ! indexes declaration for fixed species
6575 parameter ( ich4_kpp = 1 )
6577 parameter ( ih2o_kpp = 2 )
6579 parameter ( ih2_kpp = 3 )
6581 parameter ( io2_kpp = 4 )
6583 parameter ( in2_kpp = 5 )
6588 if (imap .le. 0) goto 1000
6589 if (imap .ge. 1) goto 2000
6593 ! map cbox values into yyvarkpp and yyfixkpp
6596 yy(ih2so4_kpp) = cbox(ih2so4_z)
6597 yy(ihcooh_kpp) = cbox(ihcooh_z)
6598 yy(ircooh_kpp) = cbox(ircooh_z)
6599 yy(imsa_kpp) = cbox(imsa_z)
6600 yy(imtf_kpp) = cbox(imtf_z)
6601 yy(io1d_kpp) = cbox(io1d_z)
6602 yy(ic2h5oh_kpp) = cbox(ic2h5oh_z)
6603 yy(iso2_kpp) = cbox(iso2_z)
6604 yy(ic2h6_kpp) = cbox(ic2h6_z)
6605 yy(ipan_kpp) = cbox(ipan_z)
6606 yy(idmso2_kpp) = cbox(idmso2_z)
6607 yy(itol_kpp) = cbox(itol_z)
6608 yy(ih2o2_kpp) = cbox(ih2o2_z)
6609 yy(in2o5_kpp) = cbox(in2o5_z)
6610 yy(ixyl_kpp) = cbox(ixyl_z)
6611 yy(ipar_kpp) = cbox(ipar_z)
6612 yy(icro_kpp) = cbox(icro_z)
6613 yy(ihno4_kpp) = cbox(ihno4_z)
6614 yy(ito2_kpp) = cbox(ito2_z)
6615 yy(idmso_kpp) = cbox(idmso_z)
6616 yy(iethooh_kpp) = cbox(iethooh_z)
6617 yy(ieth_kpp) = cbox(ieth_z)
6618 yy(ich3oh_kpp) = cbox(ich3oh_z)
6619 yy(ihono_kpp) = cbox(ihono_z)
6620 yy(ich3ooh_kpp) = cbox(ich3ooh_z)
6621 yy(icres_kpp) = cbox(icres_z)
6622 yy(ixpar_kpp) = cbox(ixpar_z)
6623 yy(ico_kpp) = cbox(ico_z)
6624 yy(ich3so2oo_kpp) = cbox(ich3so2oo_z)
6625 yy(ich3so2ch2oo_kpp) = cbox(ich3so2ch2oo_z)
6626 yy(ihno3_kpp) = cbox(ihno3_z)
6627 yy(iopen_kpp) = cbox(iopen_z)
6628 yy(irooh_kpp) = cbox(irooh_z)
6629 yy(idms_kpp) = cbox(idms_z)
6630 yy(iaone_kpp) = cbox(iaone_z)
6631 yy(iolet_kpp) = cbox(iolet_z)
6632 yy(ixo2_kpp) = cbox(ixo2_z)
6633 yy(ich3sch2oo_kpp) = cbox(ich3sch2oo_z)
6634 yy(iolei_kpp) = cbox(iolei_z)
6635 yy(imgly_kpp) = cbox(imgly_z)
6636 yy(iethp_kpp) = cbox(iethp_z)
6637 yy(ich3so2h_kpp) = cbox(ich3so2h_z)
6638 yy(io3p_kpp) = cbox(io3p_z)
6639 yy(inap_kpp) = cbox(inap_z)
6640 yy(iald2_kpp) = cbox(iald2_z)
6641 yy(ic2o3_kpp) = cbox(ic2o3_z)
6642 yy(ihcho_kpp) = cbox(ihcho_z)
6643 yy(iano2_kpp) = cbox(iano2_z)
6644 yy(iro2_kpp) = cbox(iro2_z)
6645 yy(ionit_kpp) = cbox(ionit_z)
6646 yy(io3_kpp) = cbox(io3_z)
6647 yy(ich3so3_kpp) = cbox(ich3so3_z)
6648 yy(ino2_kpp) = cbox(ino2_z)
6649 yy(ich3so2_kpp) = cbox(ich3so2_z)
6650 yy(ino_kpp) = cbox(ino_z)
6651 yy(iho2_kpp) = cbox(iho2_z)
6652 yy(ino3_kpp) = cbox(ino3_z)
6653 yy(ich3o2_kpp) = cbox(ich3o2_z)
6654 yy(ioh_kpp) = cbox(ioh_z)
6656 yyfixed(ich4_kpp) = cbox(ich4_z)
6657 yyfixed(ih2o_kpp) = cbox(ih2o_z)
6658 yyfixed(ih2_kpp) = cbox(ih2_z)
6659 yyfixed(io2_kpp) = cbox(io2_z)
6660 yyfixed(in2_kpp) = cbox(in2_z)
6663 ! map yyvarkpp values into cbox
6666 cbox(ih2so4_z) = yy(ih2so4_kpp)
6667 cbox(ihcooh_z) = yy(ihcooh_kpp)
6668 cbox(ircooh_z) = yy(ircooh_kpp)
6669 cbox(imsa_z) = yy(imsa_kpp)
6670 cbox(imtf_z) = yy(imtf_kpp)
6671 cbox(io1d_z) = yy(io1d_kpp)
6672 cbox(ic2h5oh_z) = yy(ic2h5oh_kpp)
6673 cbox(iso2_z) = yy(iso2_kpp)
6674 cbox(ic2h6_z) = yy(ic2h6_kpp)
6675 cbox(ipan_z) = yy(ipan_kpp)
6676 cbox(idmso2_z) = yy(idmso2_kpp)
6677 cbox(itol_z) = yy(itol_kpp)
6678 cbox(ih2o2_z) = yy(ih2o2_kpp)
6679 cbox(in2o5_z) = yy(in2o5_kpp)
6680 cbox(ixyl_z) = yy(ixyl_kpp)
6681 cbox(ipar_z) = yy(ipar_kpp)
6682 cbox(icro_z) = yy(icro_kpp)
6683 cbox(ihno4_z) = yy(ihno4_kpp)
6684 cbox(ito2_z) = yy(ito2_kpp)
6685 cbox(idmso_z) = yy(idmso_kpp)
6686 cbox(iethooh_z) = yy(iethooh_kpp)
6687 cbox(ieth_z) = yy(ieth_kpp)
6688 cbox(ich3oh_z) = yy(ich3oh_kpp)
6689 cbox(ihono_z) = yy(ihono_kpp)
6690 cbox(ich3ooh_z) = yy(ich3ooh_kpp)
6691 cbox(icres_z) = yy(icres_kpp)
6692 cbox(ixpar_z) = yy(ixpar_kpp)
6693 cbox(ico_z) = yy(ico_kpp)
6694 cbox(ich3so2oo_z) = yy(ich3so2oo_kpp)
6695 cbox(ich3so2ch2oo_z) = yy(ich3so2ch2oo_kpp)
6696 cbox(ihno3_z) = yy(ihno3_kpp)
6697 cbox(iopen_z) = yy(iopen_kpp)
6698 cbox(irooh_z) = yy(irooh_kpp)
6699 cbox(idms_z) = yy(idms_kpp)
6700 cbox(iaone_z) = yy(iaone_kpp)
6701 cbox(iolet_z) = yy(iolet_kpp)
6702 cbox(ixo2_z) = yy(ixo2_kpp)
6703 cbox(ich3sch2oo_z) = yy(ich3sch2oo_kpp)
6704 cbox(iolei_z) = yy(iolei_kpp)
6705 cbox(imgly_z) = yy(imgly_kpp)
6706 cbox(iethp_z) = yy(iethp_kpp)
6707 cbox(ich3so2h_z) = yy(ich3so2h_kpp)
6708 cbox(io3p_z) = yy(io3p_kpp)
6709 cbox(inap_z) = yy(inap_kpp)
6710 cbox(iald2_z) = yy(iald2_kpp)
6711 cbox(ic2o3_z) = yy(ic2o3_kpp)
6712 cbox(ihcho_z) = yy(ihcho_kpp)
6713 cbox(iano2_z) = yy(iano2_kpp)
6714 cbox(iro2_z) = yy(iro2_kpp)
6715 cbox(ionit_z) = yy(ionit_kpp)
6716 cbox(io3_z) = yy(io3_kpp)
6717 cbox(ich3so3_z) = yy(ich3so3_kpp)
6718 cbox(ino2_z) = yy(ino2_kpp)
6719 cbox(ich3so2_z) = yy(ich3so2_kpp)
6720 cbox(ino_z) = yy(ino_kpp)
6721 cbox(iho2_z) = yy(iho2_kpp)
6722 cbox(ino3_z) = yy(ino3_kpp)
6723 cbox(ich3o2_z) = yy(ich3o2_kpp)
6724 cbox(ioh_z) = yy(ioh_kpp)
6727 end subroutine cbmz_v02r05_mapconcs
6730 !-----------------------------------------------------------------------------
6731 subroutine cbmz_v02r05_maprates( &
6738 ! maps reaction rate constants (host code array --> kpp rconst array)
6739 ! for mechanism-version-regime = cbmz_v02r05
6741 use module_data_cbmz
6745 ! all are host-code reaction-rate-constant arrays [input]
6750 real rconst(nreact_kppmax)
6755 do i = 1, nreact_kppmax
6760 rconst(1) = (rk_m1(1))
6761 rconst(2) = (rk_m1(2))
6762 rconst(3) = (rk_m1(3))
6763 rconst(4) = (rk_m1(4))
6764 rconst(5) = (rk_m1(5))
6765 rconst(6) = (rk_m1(6))
6766 rconst(7) = (rk_m1(7))
6767 rconst(8) = (rk_m1(8))
6768 rconst(9) = (rk_m1(9))
6769 rconst(10) = (rk_m1(10))
6770 rconst(11) = (rk_m1(11))
6771 rconst(12) = (rk_m1(12))
6772 rconst(13) = (rk_m1(13))
6773 rconst(14) = (rk_m1(14))
6774 rconst(15) = (rk_m1(15))
6775 rconst(16) = (rk_m1(16))
6776 rconst(17) = (rk_m1(17))
6777 rconst(18) = (rk_m1(18))
6778 rconst(19) = (rk_m1(19))
6779 rconst(20) = (rk_m1(20))
6780 rconst(21) = (rk_m1(21))
6781 rconst(22) = (rk_m1(22))
6782 rconst(23) = (rk_m1(23))
6783 rconst(24) = (rk_m1(24))
6784 rconst(25) = (rk_m1(25))
6785 rconst(26) = (rk_m1(26))
6786 rconst(27) = (rk_m1(27))
6787 rconst(28) = (rk_m1(28))
6788 rconst(29) = (rk_m1(29))
6789 rconst(30) = (rk_m1(30))
6790 rconst(31) = (rk_m1(31))
6791 rconst(32) = (rk_m1(32))
6792 rconst(33) = (rk_m1(33))
6793 rconst(34) = (rk_m1(34))
6794 rconst(35) = (rk_m1(35))
6795 rconst(36) = (rk_m1(36))
6796 rconst(37) = (rk_m1(37))
6797 rconst(38) = (rk_m1(38))
6798 rconst(39) = (rk_m1(39))
6799 rconst(40) = (rk_m1(40))
6800 rconst(41) = (rk_m1(41))
6801 rconst(42) = (rk_m1(42))
6802 rconst(43) = (rk_m1(43))
6803 rconst(44) = (rk_m1(44))
6804 rconst(45) = (rk_m1(45))
6805 rconst(46) = (rk_m1(46))
6806 rconst(47) = (rk_m1(47))
6807 rconst(48) = (rk_m1(48))
6808 rconst(49) = (rk_m1(49))
6809 rconst(50) = (rk_m1(50))
6810 rconst(51) = (rk_m1(51))
6811 rconst(52) = (rk_m1(52))
6812 rconst(53) = (rk_m1(53))
6813 rconst(54) = (rk_m1(54))
6814 rconst(55) = (rk_m1(55))
6815 rconst(56) = (rk_m1(56))
6816 rconst(57) = (rk_m1(57))
6817 rconst(58) = (rk_m1(58))
6818 rconst(59) = (rk_m1(59))
6819 rconst(60) = (rk_m1(60))
6820 rconst(61) = (rk_m1(61))
6821 rconst(62) = (rk_m1(62))
6822 rconst(63) = (rk_m1(63))
6823 rconst(64) = (rk_m1(64))
6824 rconst(65) = (rk_m1(65))
6825 rconst(66) = (rk_m2(2))
6826 rconst(67) = (rk_m2(3))
6827 rconst(68) = (rk_m2(4))
6828 rconst(69) = (rk_m2(31))
6829 rconst(70) = (rk_m2(32))
6830 rconst(71) = (rk_m2(34))
6831 rconst(72) = (rk_m2(39))
6832 rconst(73) = (rk_m2(44))
6833 rconst(74) = (rk_m2(49))
6834 rconst(75) = (rk_m2(1))
6835 rconst(76) = (rk_m2(5))
6836 rconst(77) = (rk_m2(6))
6837 rconst(78) = (rk_m2(7))
6838 rconst(79) = (rk_m2(8))
6839 rconst(80) = (rk_m2(9))
6840 rconst(81) = (rk_m2(10))
6841 rconst(82) = (rk_m2(11))
6842 rconst(83) = (rk_m2(12))
6843 rconst(84) = (rk_m2(13))
6844 rconst(85) = (rk_m2(14))
6845 rconst(86) = (rk_m2(15))
6846 rconst(87) = (rk_m2(16))
6847 rconst(88) = (rk_m2(17))
6848 rconst(89) = (rk_m2(18))
6849 rconst(90) = (rk_m2(19))
6850 rconst(91) = (rk_m2(20))
6851 rconst(92) = (rk_m2(21))
6852 rconst(93) = (rk_m2(22))
6853 rconst(94) = (rk_m2(23))
6854 rconst(95) = (rk_m2(24))
6855 rconst(96) = (rk_m2(25))
6856 rconst(97) = (rk_m2(26))
6857 rconst(98) = (rk_m2(27))
6858 rconst(99) = (rk_m2(28))
6859 rconst(100) = (rk_m2(29))
6860 rconst(101) = (rk_m2(30))
6861 rconst(102) = (rk_m2(33))
6862 rconst(103) = (rk_m2(35))
6863 rconst(104) = (rk_m2(36))
6864 rconst(105) = (rk_m2(37))
6865 rconst(106) = (rk_m2(38))
6866 rconst(107) = (rk_m2(40))
6867 rconst(108) = (rk_m2(41))
6868 rconst(109) = (rk_m2(42))
6869 rconst(110) = (rk_m2(43))
6870 rconst(111) = (rk_m2(45))
6871 rconst(112) = (rk_m2(46))
6872 rconst(113) = (rk_m2(47))
6873 rconst(114) = (rk_m2(48))
6874 rconst(115) = (rk_m2(50))
6875 rconst(116) = (rk_m2(51))
6876 rconst(117) = (rk_m2(52))
6877 rconst(118) = (rk_m2(53))
6878 rconst(119) = (rk_m4(1))
6879 rconst(120) = (rk_m4(2))
6880 rconst(121) = (rk_m4(3))
6881 rconst(122) = (rk_m4(4))
6882 rconst(123) = (rk_m4(5))
6883 rconst(124) = (rk_m4(6))
6884 rconst(125) = (rk_m4(7))
6885 rconst(126) = (rk_m4(8))
6886 rconst(127) = (rk_m4(9))
6887 rconst(128) = (rk_m4(10))
6888 rconst(129) = (rk_m4(11))
6889 rconst(130) = (rk_m4(12))
6890 rconst(131) = (rk_m4(13))
6891 rconst(132) = (rk_m4(14))
6892 rconst(133) = (rk_m4(15))
6893 rconst(134) = (rk_m4(16))
6894 rconst(135) = (rk_m4(17))
6895 rconst(136) = (rk_m4(18))
6896 rconst(137) = (rk_m4(19))
6897 rconst(138) = (rk_m4(20))
6898 rconst(139) = (rk_m4(21))
6899 rconst(140) = (rk_m4(22))
6900 rconst(141) = (rk_m4(23))
6901 rconst(142) = (rk_m4(24))
6902 rconst(143) = (rk_m4(25))
6903 rconst(144) = (rk_m4(26))
6904 rconst(145) = (rk_m4(27))
6905 rconst(146) = (rk_m4(28))
6906 rconst(147) = (rk_m4(29))
6907 rconst(148) = (rk_m4(30))
6908 rconst(149) = (rk_m4(31))
6909 rconst(150) = (rk_m4(32))
6911 end subroutine cbmz_v02r05_maprates
6914 !-----------------------------------------------------------------------------
6915 subroutine cbmz_v02r05_dydt( nvardum, tdum, v, a_var, f, rconst )
6917 ! computes rates of change for mechanism-version-regime = cbmz_v02r05
6919 use module_data_cbmz
6923 ! nvardum = number of variable species [input]
6925 ! tdum = time [input]
6927 ! v = concentrations of variable species [input]
6928 real v(nvar_r05_kpp)
6929 ! a_var = dydt for each species [output]
6930 real a_var(nvar_r05_kpp)
6931 ! f = concentrations of fixed species [input]
6932 real f(nfixed_kppmax)
6933 ! rconst = reaction rate constants [input]
6934 real rconst(nreact_r05_kpp)
6937 ! a = rate for each reaction
6938 real a(nreact_r05_kpp)
6940 ! computation of equation rates
6941 a(1) = rconst(1)*v(53)
6942 a(2) = rconst(2)*v(57)
6943 a(3) = rconst(3)*v(24)
6944 a(4) = rconst(4)*v(31)
6945 a(5) = rconst(5)*v(18)
6946 a(6) = rconst(6)*v(14)
6947 a(7) = rconst(7)*v(51)
6948 a(8) = rconst(8)*v(51)
6949 a(9) = rconst(9)*v(13)
6950 a(10) = rconst(10)*v(6)*f(4)
6951 a(11) = rconst(11)*v(6)*f(5)
6952 a(12) = rconst(12)*v(6)*f(2)
6953 a(13) = rconst(13)*v(43)*f(4)
6954 a(14) = rconst(14)*v(43)*v(51)
6955 a(15) = rconst(15)*v(43)*v(53)
6956 a(16) = rconst(16)*v(43)*v(53)
6957 a(17) = rconst(17)*v(43)*v(55)
6958 a(18) = rconst(18)*v(51)*v(55)
6959 a(19) = rconst(19)*v(51)*v(53)
6960 a(20) = rconst(20)*v(51)*v(59)
6961 a(21) = rconst(21)*v(51)*v(56)
6962 a(22) = rconst(22)*v(59)*f(3)
6963 a(23) = rconst(23)*v(55)*v(59)
6964 a(24) = rconst(24)*v(53)*v(59)
6965 a(25) = rconst(25)*v(57)*v(59)
6966 a(26) = rconst(26)*v(24)*v(59)
6967 a(27) = rconst(27)*v(31)*v(59)
6968 a(28) = rconst(28)*v(18)*v(59)
6969 a(29) = rconst(29)*v(56)*v(59)
6970 a(30) = rconst(30)*v(13)*v(59)
6971 a(31) = rconst(31)*v(56)*v(56)
6972 a(32) = rconst(32)*v(56)*v(56)*f(2)
6973 a(33) = rconst(33)*v(55)*v(56)
6974 a(34) = rconst(34)*v(53)*v(56)
6975 a(35) = rconst(35)*v(53)*v(56)
6976 a(36) = rconst(36)*v(18)
6977 a(37) = rconst(37)*v(55)*v(57)
6978 a(38) = rconst(38)*v(53)*v(57)
6979 a(39) = rconst(39)*v(53)*v(57)
6980 a(40) = rconst(40)*v(57)*v(57)
6981 a(41) = rconst(41)*v(56)*v(57)
6982 a(42) = rconst(42)*v(14)*f(2)
6983 a(43) = rconst(43)*v(14)
6984 a(44) = rconst(44)*v(28)*v(59)
6985 a(45) = rconst(45)*v(8)*v(59)
6986 a(46) = rconst(46)*v(59)*f(1)
6987 a(47) = rconst(47)*v(9)*v(59)
6988 a(48) = rconst(48)*v(23)*v(59)
6989 a(49) = rconst(49)*v(47)
6990 a(50) = rconst(50)*v(47)
6991 a(51) = rconst(51)*v(47)*v(59)
6992 a(52) = rconst(52)*v(47)*v(57)
6993 a(53) = rconst(53)*v(25)
6994 a(54) = rconst(54)*v(21)
6995 a(55) = rconst(55)*v(25)*v(59)
6996 a(56) = rconst(56)*v(21)*v(59)
6997 a(57) = rconst(57)*v(55)*v(58)
6998 a(58) = rconst(58)*v(41)*v(55)
6999 a(59) = rconst(59)*v(57)*v(58)
7000 a(60) = rconst(60)*v(41)*v(57)
7001 a(61) = rconst(61)*v(56)*v(58)
7002 a(62) = rconst(62)*v(41)*v(56)
7003 a(63) = rconst(63)*v(58)
7004 a(64) = rconst(64)*v(41)
7005 a(65) = rconst(65)*v(7)*v(59)
7006 a(66) = rconst(66)*v(45)
7007 a(67) = rconst(67)*v(45)*v(59)
7008 a(68) = rconst(68)*v(45)*v(57)
7009 a(69) = rconst(69)*v(46)*v(53)
7010 a(70) = rconst(70)*v(10)
7011 a(71) = rconst(71)*v(46)*v(55)
7012 a(72) = rconst(72)*v(46)*v(57)
7013 a(73) = rconst(73)*v(46)*v(56)
7014 a(74) = rconst(74)*v(46)
7015 a(75) = rconst(75)*v(16)*v(59)
7016 a(76) = rconst(76)*v(35)
7017 a(77) = rconst(77)*v(35)*v(59)
7018 a(78) = rconst(78)*v(40)
7019 a(79) = rconst(79)*v(40)*v(59)
7020 a(80) = rconst(80)*v(40)*v(57)
7021 a(81) = rconst(81)*v(22)*v(51)
7022 a(82) = rconst(82)*v(22)*v(59)
7023 a(83) = rconst(83)*v(36)*v(51)
7024 a(84) = rconst(84)*v(39)*v(51)
7025 a(85) = rconst(85)*v(36)*v(59)
7026 a(86) = rconst(86)*v(39)*v(59)
7027 a(87) = rconst(87)*v(36)*v(57)
7028 a(88) = rconst(88)*v(39)*v(57)
7029 a(89) = rconst(89)*v(12)*v(59)
7030 a(90) = rconst(90)*v(15)*v(59)
7031 a(91) = rconst(91)*v(19)*v(55)
7032 a(92) = rconst(92)*v(26)*v(59)
7033 a(93) = rconst(93)*v(26)*v(57)
7034 a(94) = rconst(94)*v(17)*v(53)
7035 a(95) = rconst(95)*v(32)*v(59)
7036 a(96) = rconst(96)*v(32)
7037 a(97) = rconst(97)*v(32)*v(51)
7038 a(98) = rconst(98)*v(33)
7039 a(99) = rconst(99)*v(33)*v(59)
7040 a(100) = rconst(100)*v(50)*v(59)
7041 a(101) = rconst(101)*v(50)
7042 a(102) = rconst(102)*v(49)*v(55)
7043 a(103) = rconst(103)*v(48)*v(55)
7044 a(104) = rconst(104)*v(44)*v(55)
7045 a(105) = rconst(105)*v(37)*v(55)
7046 a(106) = rconst(106)*v(49)*v(57)
7047 a(107) = rconst(107)*v(48)*v(57)
7048 a(108) = rconst(108)*v(44)*v(57)
7049 a(109) = rconst(109)*v(37)*v(57)
7050 a(110) = rconst(110)*v(49)*v(56)
7051 a(111) = rconst(111)*v(48)*v(56)
7052 a(112) = rconst(112)*v(44)*v(56)
7053 a(113) = rconst(113)*v(37)*v(56)
7054 a(114) = rconst(114)*v(49)
7055 a(115) = rconst(115)*v(48)
7056 a(116) = rconst(116)*v(44)
7057 a(117) = rconst(117)*v(37)
7058 a(118) = rconst(118)*v(16)*v(27)
7059 a(119) = rconst(119)*v(34)*v(59)
7060 a(120) = rconst(120)*v(34)*v(57)
7061 a(121) = rconst(121)*v(34)*v(43)
7062 a(122) = rconst(122)*v(34)*v(59)
7063 a(123) = rconst(123)*v(38)*v(55)
7064 a(124) = rconst(124)*v(38)*v(58)
7065 a(125) = rconst(125)*v(38)*v(54)
7066 a(126) = rconst(126)*v(38)*v(38)
7067 a(127) = rconst(127)*v(20)*v(59)
7068 a(128) = rconst(128)*v(11)*v(59)
7069 a(129) = rconst(129)*v(30)*v(55)
7070 a(130) = rconst(130)*v(30)*v(58)
7071 a(131) = rconst(131)*v(42)*v(56)
7072 a(132) = rconst(132)*v(42)*v(57)
7073 a(133) = rconst(133)*v(42)*v(58)
7074 a(134) = rconst(134)*v(42)*v(59)
7075 a(135) = rconst(135)*v(42)*v(52)
7076 a(136) = rconst(136)*v(54)
7077 a(137) = rconst(137)*v(53)*v(54)
7078 a(138) = rconst(138)*v(51)*v(54)
7079 a(139) = rconst(139)*v(54)*v(56)
7080 a(140) = rconst(140)*v(54)*v(58)
7081 a(141) = rconst(141)*v(54)*v(59)
7082 a(142) = rconst(142)*v(54)*f(4)
7083 a(143) = rconst(143)*v(29)
7084 a(144) = rconst(144)*v(29)*v(55)
7085 a(145) = rconst(145)*v(29)*v(58)
7086 a(146) = rconst(146)*v(52)
7087 a(147) = rconst(147)*v(52)*v(53)
7088 a(148) = rconst(148)*v(52)*v(55)
7089 a(149) = rconst(149)*v(52)*v(56)
7090 a(150) = rconst(150)*v(47)*v(52)
7092 ! aggregate function
7093 a_var(1) = a(45)+a(146)
7094 a_var(2) = 0.52*a(81)+0.22*a(83)
7095 a_var(3) = 0.4*a(73)+0.09*a(83)+0.16*a(84)
7096 a_var(4) = a(135)+a(141)+a(147)+a(148)+a(149)+a(150)
7097 a_var(5) = 0.15*a(126)
7098 a_var(6) = a(8)-a(10)-a(11)-a(12)
7100 a_var(8) = -a(45)+a(136)
7101 a_var(9) = -a(47)+0.2*a(64)
7102 a_var(10) = a(69)-a(70)
7103 a_var(11) = 0.27*a(127)-a(128)
7105 a_var(13) = -a(9)-a(30)+a(31)+a(32)+a(131)
7106 a_var(14) = -a(6)+a(39)-a(42)-a(43)
7108 a_var(16) = -a(75)+1.1*a(90)-a(118)
7109 a_var(17) = 0.4*a(92)+a(93)-a(94)
7110 a_var(18) = -a(5)-a(28)+a(34)-a(36)
7111 a_var(19) = 0.8*a(89)+0.45*a(90)-a(91)
7112 a_var(20) = 0.965*a(122)-a(127)
7113 a_var(21) = -a(54)-a(56)+a(62)
7114 a_var(22) = -a(81)-a(82)
7115 a_var(23) = -a(48)+0.34*a(63)+0.03*a(83)+0.04*a(84)
7116 a_var(24) = -a(3)+a(23)-a(26)+a(35)+a(148)
7117 a_var(25) = -a(53)-a(55)+a(61)+a(133)
7118 a_var(26) = 0.12*a(89)+0.05*a(90)-a(92)-a(93)
7119 a_var(27) = 1.06*a(83)+2.26*a(84)+a(85)+2.23*a(86)+1.98*a(98) &
7120 +0.42*a(99)+1.98*a(101)+1.68*a(102)+a(104)+1.98 &
7121 *a(106)+a(108)+1.25*a(114)+a(116)-a(118)
7122 a_var(28) = -a(44)+a(49)+a(50)+a(51)+a(52)+a(66)+a(78)+a(80) &
7123 +0.24*a(81)+0.31*a(83)+0.3*a(84)+2*a(95)+a(96)+0.69 &
7125 a_var(29) = a(142)-a(143)-a(144)-a(145)
7126 a_var(30) = a(128)-a(129)-a(130)
7127 a_var(31) = -a(4)+a(24)-a(27)+0.3*a(41)+2*a(42)+a(52)+a(68) &
7128 +a(80)+a(93)+a(120)+a(132)+a(147)
7129 a_var(32) = 0.95*a(91)+0.3*a(92)-a(95)-a(96)-a(97)
7130 a_var(33) = -a(98)-a(99)+a(110)+a(111)
7131 a_var(34) = -a(119)-a(120)-a(121)-a(122)
7132 a_var(35) = -a(76)-a(77)+0.07*a(84)+0.23*a(86)+0.74*a(98)+0.74 &
7133 *a(101)+0.62*a(102)+0.74*a(106)+0.57*a(114)+0.15 &
7135 a_var(36) = -a(83)-a(85)-a(87)
7136 a_var(37) = a(79)+a(82)+a(85)+a(86)+0.08*a(89)+0.5*a(90)+0.6 &
7137 *a(92)+a(95)+0.03*a(97)+0.4*a(98)+0.4*a(101)+0.34 &
7138 *a(102)-a(105)+0.4*a(106)-a(109)-a(113)+0.24*a(114) &
7140 a_var(38) = a(119)+a(120)-a(123)-a(124)-a(125)-2*a(126)
7141 a_var(39) = -a(84)-a(86)-a(88)
7142 a_var(40) = -a(78)-a(79)-a(80)+0.04*a(83)+0.07*a(84)+0.8*a(90) &
7143 +0.2*a(97)+0.19*a(99)+0.15*a(115)
7144 a_var(41) = a(47)+0.5*a(56)-a(58)-a(60)-a(62)-a(64)+0.06*a(83) &
7145 +0.05*a(84)+0.1*a(98)+0.1*a(101)+0.08*a(102)+0.1 &
7147 a_var(42) = 0.73*a(127)-a(131)-a(132)-a(133)-a(134)-a(135)
7148 a_var(43) = a(1)+0.89*a(2)+a(7)+a(10)+a(11)-a(13)-a(14)-a(15) &
7150 a_var(44) = a(87)+a(88)+a(100)-a(104)-a(108)-a(112)-a(116)
7151 a_var(45) = a(54)+0.5*a(56)+a(58)+a(60)+0.8*a(64)+a(65)-a(66) &
7152 -a(67)-a(68)+0.22*a(82)+0.47*a(83)+1.03*a(84)+a(85) &
7153 +1.77*a(86)+0.03*a(97)+0.3*a(98)+0.04*a(99)+0.3 &
7154 *a(101)+0.25*a(102)+0.5*a(104)+0.3*a(106)+0.5*a(108) &
7155 +0.21*a(114)+0.5*a(116)
7156 a_var(46) = a(67)+a(68)-a(69)+a(70)-a(71)-a(72)-a(73)-a(74) &
7157 +a(76)+a(78)+a(79)+a(80)+0.13*a(83)+0.19*a(84)+a(95) &
7158 +a(96)+0.62*a(97)+a(103)+a(107)+0.7*a(115)
7159 a_var(47) = a(48)-a(49)-a(50)-a(51)-a(52)+a(53)+0.3*a(55)+a(57) &
7160 +a(59)+0.66*a(63)+a(81)+1.56*a(82)+0.57*a(83)+a(85) &
7161 +a(95)+0.7*a(97)+a(103)+0.5*a(104)+a(107)+0.5*a(108) &
7162 +0.7*a(115)+0.5*a(116)+a(123)+2*a(124)+a(125)+a(129) &
7163 +2*a(130)+a(140)+a(145)-a(150)
7164 a_var(48) = a(77)+0.11*a(84)-a(103)-a(107)-a(111)-a(115)
7165 a_var(49) = a(75)+0.03*a(83)+0.09*a(84)+0.77*a(99)-a(102)-a(106) &
7167 a_var(50) = 0.05*a(91)+a(94)-a(100)-a(101)+0.16*a(102)+0.5 &
7168 *a(104)+0.5*a(108)+a(112)+0.5*a(116)
7169 a_var(51) = -a(7)-a(8)+a(13)-a(14)-a(18)-a(19)-a(20)-a(21)+0.4 &
7170 *a(73)-a(81)-a(83)-a(84)-a(97)-a(138)
7171 a_var(52) = a(125)-a(135)+a(137)+a(138)+a(139)+a(140)+a(144) &
7172 +a(145)-a(146)-a(147)-a(148)-a(149)-a(150)
7173 a_var(53) = -a(1)+0.89*a(2)+a(4)+a(5)+a(6)-a(15)-a(16)+a(17) &
7174 +a(18)-a(19)-a(24)+a(25)+a(26)+a(28)+a(33)-a(34) &
7175 -a(35)+a(36)+2*a(37)-a(39)+2*a(40)+0.7*a(41)+a(43) &
7176 +a(57)+a(58)+a(59)+a(60)-a(69)+a(70)+a(71)+a(72)+0.95 &
7177 *a(91)-a(94)+a(101)+0.84*a(102)+a(103)+1.5*a(104) &
7178 +a(105)+a(106)+a(107)+1.5*a(108)+a(109)+0.5*a(116) &
7179 +a(123)+a(129)-a(137)+a(144)-a(147)
7180 a_var(54) = a(121)+0.035*a(122)+a(123)+a(124)+1.85*a(126)+a(129) &
7181 +a(130)+a(131)+a(132)+a(133)+a(134)+a(135)-a(136) &
7182 -a(137)-a(138)-a(139)-a(140)-a(141)-a(142)+a(143)
7183 a_var(55) = a(1)+0.11*a(2)+a(3)+a(15)-a(17)-a(18)-a(23)-a(33) &
7184 -a(37)+a(38)-a(57)-a(58)-a(71)-a(91)-a(102)-a(103) &
7185 -a(104)-a(105)-a(123)-a(129)+a(137)-a(144)-a(148)
7186 a_var(56) = a(5)+a(20)-a(21)+a(22)+a(25)-a(29)+a(30)-2*a(31)-2 &
7187 *a(32)-a(33)-a(34)-a(35)+a(36)-a(41)+a(44)+a(45) &
7188 +a(48)+2*a(49)+a(51)+a(52)+a(53)+a(54)+a(57)+a(58) &
7189 +a(59)+a(60)-a(61)-a(62)+0.32*a(63)+0.6*a(64)+a(65) &
7190 +a(66)-a(73)+a(78)+0.22*a(81)+a(82)+0.26*a(83)+0.22 &
7191 *a(84)+a(85)+a(86)+0.2*a(89)+0.55*a(90)+0.95*a(91) &
7192 +0.6*a(92)+2*a(95)+a(96)+0.76*a(97)+0.9*a(98)+0.9 &
7193 *a(101)+0.76*a(102)+0.5*a(104)+0.9*a(106)+0.5*a(108) &
7194 -a(110)-a(111)-a(112)-a(113)+0.54*a(114)+0.965*a(122) &
7195 +a(124)+0.27*a(127)+a(130)-a(131)-a(139)+a(140) &
7196 +a(145)-a(149)+a(150)
7197 a_var(57) = -a(2)+a(6)+a(16)+a(19)-a(25)+a(27)-a(37)-a(38)-a(39) &
7198 -2*a(40)-a(41)+a(43)-a(52)-a(59)-a(60)-a(68)-a(72) &
7199 -a(80)-a(87)-a(88)-a(93)-a(106)-a(107)-a(108)-a(109) &
7201 a_var(58) = a(46)+0.7*a(55)-a(57)-a(59)-a(61)-a(63)+a(66)+a(71) &
7202 +a(72)+a(74)+a(76)+0.07*a(83)+0.1*a(84)+a(121)+0.035 &
7203 *a(122)-a(124)+0.73*a(127)-a(130)-a(133)+a(136) &
7204 -a(140)-a(145)+a(146)
7205 a_var(59) = a(3)+a(4)+2*a(9)+2*a(12)-a(20)+a(21)-a(22)-a(23) &
7206 -a(24)-a(25)-a(26)-a(27)-a(28)-a(29)-a(30)+a(33)+0.7 &
7207 *a(41)-a(44)-a(45)-a(46)-a(47)-a(48)-a(51)+a(53) &
7208 +a(54)-0.7*a(55)-0.5*a(56)-a(65)-a(67)-a(75)-a(77) &
7209 -a(79)+0.12*a(81)-a(82)+0.33*a(83)+0.6*a(84)-a(85) &
7210 -a(86)-a(89)-a(90)-a(92)-a(95)+0.08*a(97)+a(98)-0.77 &
7211 *a(99)-a(100)-a(119)-a(122)-a(127)-a(128)-a(134) &
7214 end subroutine cbmz_v02r05_dydt
7217 !-----------------------------------------------------------------------------
7218 subroutine cbmz_v02r05_jacob( nvardum, tdum, v, jvs, f, rconst )
7220 ! computes jacobian for mechanism-version-regime = cbmz_v02r05
7222 use module_data_cbmz
7226 ! nvardum = number of variable species [input]
7228 ! tdum = time [input]
7230 ! v = concentrations of variable species [input]
7231 real v(nvar_r05_kpp)
7232 ! jvs = non-zero jacobian elements [output]
7233 real jvs(lu_nonzero_v_r05_kpp)
7234 ! f = concentrations of fixed species [input]
7235 real f(nfixed_kppmax)
7236 ! rconst = reaction rate constants [input]
7237 real rconst(nreact_r05_kpp)
7240 ! b(i,j) = d[reaction_rate(i)] / d[species_conc(j)]
7241 real b(nreact_r05_kpp,nvar_r05_kpp)
7243 ! computation of b(i,j) = da(i)/dv(j)
7253 b(10,6) = rconst(10)*f(4)
7254 b(11,6) = rconst(11)*f(5)
7255 b(12,6) = rconst(12)*f(2)
7256 b(13,43) = rconst(13)*f(4)
7257 b(14,43) = rconst(14)*v(51)
7258 b(14,51) = rconst(14)*v(43)
7259 b(15,43) = rconst(15)*v(53)
7260 b(15,53) = rconst(15)*v(43)
7261 b(16,43) = rconst(16)*v(53)
7262 b(16,53) = rconst(16)*v(43)
7263 b(17,43) = rconst(17)*v(55)
7264 b(17,55) = rconst(17)*v(43)
7265 b(18,51) = rconst(18)*v(55)
7266 b(18,55) = rconst(18)*v(51)
7267 b(19,51) = rconst(19)*v(53)
7268 b(19,53) = rconst(19)*v(51)
7269 b(20,51) = rconst(20)*v(59)
7270 b(20,59) = rconst(20)*v(51)
7271 b(21,51) = rconst(21)*v(56)
7272 b(21,56) = rconst(21)*v(51)
7273 b(22,59) = rconst(22)*f(3)
7274 b(23,55) = rconst(23)*v(59)
7275 b(23,59) = rconst(23)*v(55)
7276 b(24,53) = rconst(24)*v(59)
7277 b(24,59) = rconst(24)*v(53)
7278 b(25,57) = rconst(25)*v(59)
7279 b(25,59) = rconst(25)*v(57)
7280 b(26,24) = rconst(26)*v(59)
7281 b(26,59) = rconst(26)*v(24)
7282 b(27,31) = rconst(27)*v(59)
7283 b(27,59) = rconst(27)*v(31)
7284 b(28,18) = rconst(28)*v(59)
7285 b(28,59) = rconst(28)*v(18)
7286 b(29,56) = rconst(29)*v(59)
7287 b(29,59) = rconst(29)*v(56)
7288 b(30,13) = rconst(30)*v(59)
7289 b(30,59) = rconst(30)*v(13)
7290 b(31,56) = rconst(31)*2*v(56)
7291 b(32,56) = rconst(32)*2*v(56)*f(2)
7292 b(33,55) = rconst(33)*v(56)
7293 b(33,56) = rconst(33)*v(55)
7294 b(34,53) = rconst(34)*v(56)
7295 b(34,56) = rconst(34)*v(53)
7296 b(35,53) = rconst(35)*v(56)
7297 b(35,56) = rconst(35)*v(53)
7298 b(36,18) = rconst(36)
7299 b(37,55) = rconst(37)*v(57)
7300 b(37,57) = rconst(37)*v(55)
7301 b(38,53) = rconst(38)*v(57)
7302 b(38,57) = rconst(38)*v(53)
7303 b(39,53) = rconst(39)*v(57)
7304 b(39,57) = rconst(39)*v(53)
7305 b(40,57) = rconst(40)*2*v(57)
7306 b(41,56) = rconst(41)*v(57)
7307 b(41,57) = rconst(41)*v(56)
7308 b(42,14) = rconst(42)*f(2)
7309 b(43,14) = rconst(43)
7310 b(44,28) = rconst(44)*v(59)
7311 b(44,59) = rconst(44)*v(28)
7312 b(45,8) = rconst(45)*v(59)
7313 b(45,59) = rconst(45)*v(8)
7314 b(46,59) = rconst(46)*f(1)
7315 b(47,9) = rconst(47)*v(59)
7316 b(47,59) = rconst(47)*v(9)
7317 b(48,23) = rconst(48)*v(59)
7318 b(48,59) = rconst(48)*v(23)
7319 b(49,47) = rconst(49)
7320 b(50,47) = rconst(50)
7321 b(51,47) = rconst(51)*v(59)
7322 b(51,59) = rconst(51)*v(47)
7323 b(52,47) = rconst(52)*v(57)
7324 b(52,57) = rconst(52)*v(47)
7325 b(53,25) = rconst(53)
7326 b(54,21) = rconst(54)
7327 b(55,25) = rconst(55)*v(59)
7328 b(55,59) = rconst(55)*v(25)
7329 b(56,21) = rconst(56)*v(59)
7330 b(56,59) = rconst(56)*v(21)
7331 b(57,55) = rconst(57)*v(58)
7332 b(57,58) = rconst(57)*v(55)
7333 b(58,41) = rconst(58)*v(55)
7334 b(58,55) = rconst(58)*v(41)
7335 b(59,57) = rconst(59)*v(58)
7336 b(59,58) = rconst(59)*v(57)
7337 b(60,41) = rconst(60)*v(57)
7338 b(60,57) = rconst(60)*v(41)
7339 b(61,56) = rconst(61)*v(58)
7340 b(61,58) = rconst(61)*v(56)
7341 b(62,41) = rconst(62)*v(56)
7342 b(62,56) = rconst(62)*v(41)
7343 b(63,58) = rconst(63)
7344 b(64,41) = rconst(64)
7345 b(65,7) = rconst(65)*v(59)
7346 b(65,59) = rconst(65)*v(7)
7347 b(66,45) = rconst(66)
7348 b(67,45) = rconst(67)*v(59)
7349 b(67,59) = rconst(67)*v(45)
7350 b(68,45) = rconst(68)*v(57)
7351 b(68,57) = rconst(68)*v(45)
7352 b(69,46) = rconst(69)*v(53)
7353 b(69,53) = rconst(69)*v(46)
7354 b(70,10) = rconst(70)
7355 b(71,46) = rconst(71)*v(55)
7356 b(71,55) = rconst(71)*v(46)
7357 b(72,46) = rconst(72)*v(57)
7358 b(72,57) = rconst(72)*v(46)
7359 b(73,46) = rconst(73)*v(56)
7360 b(73,56) = rconst(73)*v(46)
7361 b(74,46) = rconst(74)
7362 b(75,16) = rconst(75)*v(59)
7363 b(75,59) = rconst(75)*v(16)
7364 b(76,35) = rconst(76)
7365 b(77,35) = rconst(77)*v(59)
7366 b(77,59) = rconst(77)*v(35)
7367 b(78,40) = rconst(78)
7368 b(79,40) = rconst(79)*v(59)
7369 b(79,59) = rconst(79)*v(40)
7370 b(80,40) = rconst(80)*v(57)
7371 b(80,57) = rconst(80)*v(40)
7372 b(81,22) = rconst(81)*v(51)
7373 b(81,51) = rconst(81)*v(22)
7374 b(82,22) = rconst(82)*v(59)
7375 b(82,59) = rconst(82)*v(22)
7376 b(83,36) = rconst(83)*v(51)
7377 b(83,51) = rconst(83)*v(36)
7378 b(84,39) = rconst(84)*v(51)
7379 b(84,51) = rconst(84)*v(39)
7380 b(85,36) = rconst(85)*v(59)
7381 b(85,59) = rconst(85)*v(36)
7382 b(86,39) = rconst(86)*v(59)
7383 b(86,59) = rconst(86)*v(39)
7384 b(87,36) = rconst(87)*v(57)
7385 b(87,57) = rconst(87)*v(36)
7386 b(88,39) = rconst(88)*v(57)
7387 b(88,57) = rconst(88)*v(39)
7388 b(89,12) = rconst(89)*v(59)
7389 b(89,59) = rconst(89)*v(12)
7390 b(90,15) = rconst(90)*v(59)
7391 b(90,59) = rconst(90)*v(15)
7392 b(91,19) = rconst(91)*v(55)
7393 b(91,55) = rconst(91)*v(19)
7394 b(92,26) = rconst(92)*v(59)
7395 b(92,59) = rconst(92)*v(26)
7396 b(93,26) = rconst(93)*v(57)
7397 b(93,57) = rconst(93)*v(26)
7398 b(94,17) = rconst(94)*v(53)
7399 b(94,53) = rconst(94)*v(17)
7400 b(95,32) = rconst(95)*v(59)
7401 b(95,59) = rconst(95)*v(32)
7402 b(96,32) = rconst(96)
7403 b(97,32) = rconst(97)*v(51)
7404 b(97,51) = rconst(97)*v(32)
7405 b(98,33) = rconst(98)
7406 b(99,33) = rconst(99)*v(59)
7407 b(99,59) = rconst(99)*v(33)
7408 b(100,50) = rconst(100)*v(59)
7409 b(100,59) = rconst(100)*v(50)
7410 b(101,50) = rconst(101)
7411 b(102,49) = rconst(102)*v(55)
7412 b(102,55) = rconst(102)*v(49)
7413 b(103,48) = rconst(103)*v(55)
7414 b(103,55) = rconst(103)*v(48)
7415 b(104,44) = rconst(104)*v(55)
7416 b(104,55) = rconst(104)*v(44)
7417 b(105,37) = rconst(105)*v(55)
7418 b(105,55) = rconst(105)*v(37)
7419 b(106,49) = rconst(106)*v(57)
7420 b(106,57) = rconst(106)*v(49)
7421 b(107,48) = rconst(107)*v(57)
7422 b(107,57) = rconst(107)*v(48)
7423 b(108,44) = rconst(108)*v(57)
7424 b(108,57) = rconst(108)*v(44)
7425 b(109,37) = rconst(109)*v(57)
7426 b(109,57) = rconst(109)*v(37)
7427 b(110,49) = rconst(110)*v(56)
7428 b(110,56) = rconst(110)*v(49)
7429 b(111,48) = rconst(111)*v(56)
7430 b(111,56) = rconst(111)*v(48)
7431 b(112,44) = rconst(112)*v(56)
7432 b(112,56) = rconst(112)*v(44)
7433 b(113,37) = rconst(113)*v(56)
7434 b(113,56) = rconst(113)*v(37)
7435 b(114,49) = rconst(114)
7436 b(115,48) = rconst(115)
7437 b(116,44) = rconst(116)
7438 b(117,37) = rconst(117)
7439 b(118,16) = rconst(118)*v(27)
7440 b(118,27) = rconst(118)*v(16)
7441 b(119,34) = rconst(119)*v(59)
7442 b(119,59) = rconst(119)*v(34)
7443 b(120,34) = rconst(120)*v(57)
7444 b(120,57) = rconst(120)*v(34)
7445 b(121,34) = rconst(121)*v(43)
7446 b(121,43) = rconst(121)*v(34)
7447 b(122,34) = rconst(122)*v(59)
7448 b(122,59) = rconst(122)*v(34)
7449 b(123,38) = rconst(123)*v(55)
7450 b(123,55) = rconst(123)*v(38)
7451 b(124,38) = rconst(124)*v(58)
7452 b(124,58) = rconst(124)*v(38)
7453 b(125,38) = rconst(125)*v(54)
7454 b(125,54) = rconst(125)*v(38)
7455 b(126,38) = rconst(126)*2*v(38)
7456 b(127,20) = rconst(127)*v(59)
7457 b(127,59) = rconst(127)*v(20)
7458 b(128,11) = rconst(128)*v(59)
7459 b(128,59) = rconst(128)*v(11)
7460 b(129,30) = rconst(129)*v(55)
7461 b(129,55) = rconst(129)*v(30)
7462 b(130,30) = rconst(130)*v(58)
7463 b(130,58) = rconst(130)*v(30)
7464 b(131,42) = rconst(131)*v(56)
7465 b(131,56) = rconst(131)*v(42)
7466 b(132,42) = rconst(132)*v(57)
7467 b(132,57) = rconst(132)*v(42)
7468 b(133,42) = rconst(133)*v(58)
7469 b(133,58) = rconst(133)*v(42)
7470 b(134,42) = rconst(134)*v(59)
7471 b(134,59) = rconst(134)*v(42)
7472 b(135,42) = rconst(135)*v(52)
7473 b(135,52) = rconst(135)*v(42)
7474 b(136,54) = rconst(136)
7475 b(137,53) = rconst(137)*v(54)
7476 b(137,54) = rconst(137)*v(53)
7477 b(138,51) = rconst(138)*v(54)
7478 b(138,54) = rconst(138)*v(51)
7479 b(139,54) = rconst(139)*v(56)
7480 b(139,56) = rconst(139)*v(54)
7481 b(140,54) = rconst(140)*v(58)
7482 b(140,58) = rconst(140)*v(54)
7483 b(141,54) = rconst(141)*v(59)
7484 b(141,59) = rconst(141)*v(54)
7485 b(142,54) = rconst(142)*f(4)
7486 b(143,29) = rconst(143)
7487 b(144,29) = rconst(144)*v(55)
7488 b(144,55) = rconst(144)*v(29)
7489 b(145,29) = rconst(145)*v(58)
7490 b(145,58) = rconst(145)*v(29)
7491 b(146,52) = rconst(146)
7492 b(147,52) = rconst(147)*v(53)
7493 b(147,53) = rconst(147)*v(52)
7494 b(148,52) = rconst(148)*v(55)
7495 b(148,55) = rconst(148)*v(52)
7496 b(149,52) = rconst(149)*v(56)
7497 b(149,56) = rconst(149)*v(52)
7498 b(150,47) = rconst(150)*v(52)
7499 b(150,52) = rconst(150)*v(47)
7501 ! construct the jacobian terms from b's
7507 jvs(6) = 0.52*b(81,22)
7508 jvs(7) = 0.22*b(83,36)
7509 jvs(8) = 0.52*b(81,51)+0.22*b(83,51)
7511 jvs(10) = 0.09*b(83,36)
7512 jvs(11) = 0.16*b(84,39)
7513 jvs(12) = 0.4*b(73,46)
7514 jvs(13) = 0.09*b(83,51)+0.16*b(84,51)
7515 jvs(14) = 0.4*b(73,56)
7519 jvs(18) = b(135,52)+b(147,52)+b(148,52)+b(149,52)+b(150,52)
7526 jvs(25) = 0.15*b(126,38)
7527 jvs(26) = -b(10,6)-b(11,6)-b(12,6)
7535 jvs(34) = 0.2*b(64,41)
7540 jvs(39) = -b(128,11)
7541 jvs(40) = 0.27*b(127,20)
7542 jvs(41) = 0.27*b(127,59)-b(128,59)
7545 jvs(44) = -b(9,13)-b(30,13)
7547 jvs(46) = b(31,56)+b(32,56)+b(131,56)
7549 jvs(48) = -b(6,14)-b(42,14)-b(43,14)
7554 jvs(53) = 1.1*b(90,15)
7555 jvs(54) = -b(75,16)-b(118,16)
7556 jvs(55) = -b(118,27)
7557 jvs(56) = -b(75,59)+1.1*b(90,59)
7559 jvs(58) = 0.4*b(92,26)+b(93,26)
7562 jvs(61) = 0.4*b(92,59)
7563 jvs(62) = -b(5,18)-b(28,18)-b(36,18)
7567 jvs(66) = 0.8*b(89,12)
7568 jvs(67) = 0.45*b(90,15)
7571 jvs(70) = 0.8*b(89,59)+0.45*b(90,59)
7572 jvs(71) = -b(127,20)
7573 jvs(72) = 0.965*b(122,34)
7574 jvs(73) = 0.965*b(122,59)-b(127,59)
7575 jvs(74) = -b(54,21)-b(56,21)
7579 jvs(78) = -b(81,22)-b(82,22)
7583 jvs(82) = 0.03*b(83,36)
7584 jvs(83) = 0.04*b(84,39)
7585 jvs(84) = 0.03*b(83,51)+0.04*b(84,51)
7586 jvs(85) = 0.34*b(63,58)
7588 jvs(87) = -b(3,24)-b(26,24)
7591 jvs(90) = b(23,55)+b(148,55)
7593 jvs(92) = b(23,59)-b(26,59)
7594 jvs(93) = -b(53,25)-b(55,25)
7597 jvs(96) = b(61,58)+b(133,58)
7599 jvs(98) = 0.12*b(89,12)
7600 jvs(99) = 0.05*b(90,15)
7601 jvs(100) = -b(92,26)-b(93,26)
7602 jvs(101) = -b(93,57)
7603 jvs(102) = 0.12*b(89,59)+0.05*b(90,59)-b(92,59)
7604 jvs(103) = -b(118,16)
7605 jvs(104) = -b(118,27)
7606 jvs(105) = 1.98*b(98,33)+0.42*b(99,33)
7607 jvs(106) = 1.06*b(83,36)+b(85,36)
7608 jvs(107) = 2.26*b(84,39)+2.23*b(86,39)
7609 jvs(108) = b(104,44)+b(108,44)+b(116,44)
7610 jvs(109) = 1.68*b(102,49)+1.98*b(106,49)+1.25*b(114,49)
7611 jvs(110) = 1.98*b(101,50)
7612 jvs(111) = 1.06*b(83,51)+2.26*b(84,51)
7613 jvs(112) = 1.68*b(102,55)+b(104,55)
7614 jvs(113) = 1.98*b(106,57)+b(108,57)
7615 jvs(114) = b(85,59)+2.23*b(86,59)+0.42*b(99,59)
7616 jvs(115) = 0.24*b(81,22)
7617 jvs(116) = -b(44,28)
7618 jvs(117) = 2*b(95,32)+b(96,32)+0.69*b(97,32)
7619 jvs(118) = 0.31*b(83,36)
7620 jvs(119) = 0.3*b(84,39)
7621 jvs(120) = b(78,40)+b(80,40)
7623 jvs(122) = b(49,47)+b(50,47)+b(51,47)+b(52,47)+b(150,47)
7624 jvs(123) = 0.24*b(81,51)+0.31*b(83,51)+0.3*b(84,51)+0.69 &
7626 jvs(124) = b(150,52)
7627 jvs(125) = b(52,57)+b(80,57)
7628 jvs(126) = -b(44,59)+b(51,59)+2*b(95,59)
7629 jvs(127) = -b(143,29)-b(144,29)-b(145,29)
7630 jvs(128) = b(142,54)
7631 jvs(129) = -b(144,55)
7632 jvs(130) = -b(145,58)
7633 jvs(131) = b(128,11)
7635 jvs(133) = -b(129,30)-b(130,30)
7637 jvs(135) = -b(129,55)
7638 jvs(136) = -b(130,58)
7639 jvs(137) = b(128,59)
7640 jvs(138) = 2*b(42,14)
7642 jvs(140) = -b(4,31)-b(27,31)
7643 jvs(141) = b(120,34)
7645 jvs(143) = b(132,42)
7648 jvs(146) = b(147,52)
7649 jvs(147) = b(24,53)+b(147,53)
7650 jvs(148) = 0.3*b(41,56)
7651 jvs(149) = 0.3*b(41,57)+b(52,57)+b(68,57)+b(80,57)+b(93,57) &
7652 +b(120,57)+b(132,57)
7653 jvs(150) = b(24,59)-b(27,59)
7654 jvs(151) = 0.95*b(91,19)
7655 jvs(152) = 0.3*b(92,26)
7656 jvs(153) = -b(95,32)-b(96,32)-b(97,32)
7657 jvs(154) = -b(97,51)
7658 jvs(155) = 0.95*b(91,55)
7660 jvs(157) = 0.3*b(92,59)-b(95,59)
7661 jvs(158) = -b(98,33)-b(99,33)
7662 jvs(159) = b(111,48)
7663 jvs(160) = b(110,49)
7664 jvs(161) = b(110,56)+b(111,56)
7665 jvs(162) = -b(99,59)
7666 jvs(163) = -b(119,34)-b(120,34)-b(121,34)-b(122,34)
7667 jvs(164) = -b(121,43)
7668 jvs(165) = -b(120,57)
7669 jvs(166) = -b(119,59)-b(122,59)
7670 jvs(167) = 0.74*b(98,33)
7671 jvs(168) = -b(76,35)-b(77,35)
7672 jvs(169) = 0.07*b(84,39)+0.23*b(86,39)
7673 jvs(170) = 0.15*b(115,48)
7674 jvs(171) = 0.62*b(102,49)+0.74*b(106,49)+0.57*b(114,49)
7675 jvs(172) = 0.74*b(101,50)
7676 jvs(173) = 0.07*b(84,51)
7677 jvs(174) = 0.62*b(102,55)
7679 jvs(176) = 0.74*b(106,57)
7680 jvs(177) = -b(77,59)+0.23*b(86,59)
7681 jvs(178) = -b(83,36)-b(85,36)-b(87,36)
7682 jvs(179) = -b(83,51)
7683 jvs(180) = -b(87,57)
7684 jvs(181) = -b(85,59)
7685 jvs(182) = 0.08*b(89,12)
7686 jvs(183) = 0.5*b(90,15)
7688 jvs(185) = 0.6*b(92,26)
7689 jvs(186) = b(95,32)+0.03*b(97,32)
7690 jvs(187) = 0.4*b(98,33)
7692 jvs(189) = -b(105,37)-b(109,37)-b(113,37)-b(117,37)
7696 jvs(193) = 0.34*b(102,49)+0.4*b(106,49)+0.24*b(114,49)
7697 jvs(194) = 0.4*b(101,50)
7698 jvs(195) = 0.03*b(97,51)
7699 jvs(196) = 0.34*b(102,55)-b(105,55)
7700 jvs(197) = -b(113,56)
7701 jvs(198) = 0.4*b(106,57)-b(109,57)
7702 jvs(199) = b(79,59)+b(82,59)+b(85,59)+b(86,59)+0.08*b(89,59)+0.5 &
7703 *b(90,59)+0.6*b(92,59)+b(95,59)
7704 jvs(200) = b(119,34)+b(120,34)
7705 jvs(201) = -b(123,38)-b(124,38)-b(125,38)-2*b(126,38)
7707 jvs(203) = -b(125,54)
7708 jvs(204) = -b(123,55)
7709 jvs(205) = b(120,57)
7710 jvs(206) = -b(124,58)
7711 jvs(207) = b(119,59)
7712 jvs(208) = -b(84,39)-b(86,39)-b(88,39)
7713 jvs(209) = -b(84,51)
7714 jvs(210) = -b(88,57)
7715 jvs(211) = -b(86,59)
7716 jvs(212) = 0.8*b(90,15)
7717 jvs(213) = 0.2*b(97,32)
7718 jvs(214) = 0.19*b(99,33)
7719 jvs(215) = 0.04*b(83,36)
7720 jvs(216) = 0.07*b(84,39)
7721 jvs(217) = -b(78,40)-b(79,40)-b(80,40)
7722 jvs(218) = 0.15*b(115,48)
7724 jvs(220) = 0.04*b(83,51)+0.07*b(84,51)+0.2*b(97,51)
7727 jvs(223) = -b(80,57)
7728 jvs(224) = -b(79,59)+0.8*b(90,59)+0.19*b(99,59)
7730 jvs(226) = 0.5*b(56,21)
7731 jvs(227) = 0.1*b(98,33)
7732 jvs(228) = 0.06*b(83,36)
7733 jvs(229) = 0.05*b(84,39)
7734 jvs(230) = -b(58,41)-b(60,41)-b(62,41)-b(64,41)
7736 jvs(232) = 0.08*b(102,49)+0.1*b(106,49)+0.06*b(114,49)
7737 jvs(233) = 0.1*b(101,50)
7738 jvs(234) = 0.06*b(83,51)+0.05*b(84,51)
7739 jvs(235) = -b(58,55)+0.08*b(102,55)
7740 jvs(236) = -b(62,56)
7741 jvs(237) = -b(60,57)+0.1*b(106,57)
7742 jvs(238) = b(47,59)+0.5*b(56,59)
7743 jvs(239) = 0.73*b(127,20)
7745 jvs(241) = -b(131,42)-b(132,42)-b(133,42)-b(134,42)-b(135,42)
7747 jvs(243) = -b(135,52)
7748 jvs(244) = -b(131,56)
7749 jvs(245) = -b(132,57)
7750 jvs(246) = -b(133,58)
7751 jvs(247) = 0.73*b(127,59)-b(134,59)
7752 jvs(248) = b(10,6)+b(11,6)
7753 jvs(249) = -b(121,34)
7754 jvs(250) = -b(13,43)-b(14,43)-b(15,43)-b(16,43)-b(17,43) &
7756 jvs(251) = b(7,51)-b(14,51)
7757 jvs(252) = b(1,53)-b(15,53)-b(16,53)
7758 jvs(253) = -b(17,55)
7759 jvs(254) = 0.89*b(2,57)
7763 jvs(258) = -b(104,44)-b(108,44)-b(112,44)-b(116,44)
7764 jvs(259) = b(100,50)
7766 jvs(261) = -b(104,55)
7767 jvs(262) = -b(112,56)
7768 jvs(263) = b(87,57)+b(88,57)-b(108,57)
7769 jvs(264) = b(100,59)
7771 jvs(266) = b(54,21)+0.5*b(56,21)
7772 jvs(267) = 0.22*b(82,22)
7773 jvs(268) = 0.03*b(97,32)
7774 jvs(269) = 0.3*b(98,33)+0.04*b(99,33)
7775 jvs(270) = 0.47*b(83,36)+b(85,36)
7776 jvs(271) = 1.03*b(84,39)+1.77*b(86,39)
7777 jvs(272) = b(58,41)+b(60,41)+0.8*b(64,41)
7778 jvs(273) = 0.5*b(104,44)+0.5*b(108,44)+0.5*b(116,44)
7779 jvs(274) = -b(66,45)-b(67,45)-b(68,45)
7781 jvs(276) = 0.25*b(102,49)+0.3*b(106,49)+0.21*b(114,49)
7782 jvs(277) = 0.3*b(101,50)
7783 jvs(278) = 0.47*b(83,51)+1.03*b(84,51)+0.03*b(97,51)
7784 jvs(279) = b(58,55)+0.25*b(102,55)+0.5*b(104,55)
7786 jvs(281) = b(60,57)-b(68,57)+0.3*b(106,57)+0.5*b(108,57)
7787 jvs(282) = 0.5*b(56,59)+b(65,59)-b(67,59)+0.22*b(82,59)+b(85,59) &
7788 +1.77*b(86,59)+0.04*b(99,59)
7790 jvs(284) = b(95,32)+b(96,32)+0.62*b(97,32)
7792 jvs(286) = 0.13*b(83,36)
7793 jvs(287) = 0.19*b(84,39)
7794 jvs(288) = b(78,40)+b(79,40)+b(80,40)
7795 jvs(289) = b(67,45)+b(68,45)
7796 jvs(290) = -b(69,46)-b(71,46)-b(72,46)-b(73,46)-b(74,46)
7797 jvs(291) = b(103,48)+b(107,48)+0.7*b(115,48)
7800 jvs(294) = 0.13*b(83,51)+0.19*b(84,51)+0.62*b(97,51)
7801 jvs(295) = -b(69,53)
7802 jvs(296) = -b(71,55)+b(103,55)
7803 jvs(297) = -b(73,56)
7804 jvs(298) = b(68,57)-b(72,57)+b(80,57)+b(107,57)
7805 jvs(299) = b(67,59)+b(79,59)+b(95,59)
7806 jvs(300) = b(81,22)+1.56*b(82,22)
7808 jvs(302) = b(53,25)+0.3*b(55,25)
7809 jvs(303) = b(145,29)
7810 jvs(304) = b(129,30)+2*b(130,30)
7811 jvs(305) = b(95,32)+0.7*b(97,32)
7813 jvs(307) = 0.57*b(83,36)+b(85,36)
7814 jvs(308) = b(123,38)+2*b(124,38)+b(125,38)
7818 jvs(312) = 0.5*b(104,44)+0.5*b(108,44)+0.5*b(116,44)
7819 jvs(313) = -b(49,47)-b(50,47)-b(51,47)-b(52,47)-b(150,47)
7820 jvs(314) = b(103,48)+b(107,48)+0.7*b(115,48)
7822 jvs(316) = b(81,51)+0.57*b(83,51)+0.7*b(97,51)
7823 jvs(317) = -b(150,52)
7825 jvs(319) = b(125,54)+b(140,54)
7826 jvs(320) = b(57,55)+b(103,55)+0.5*b(104,55)+b(123,55)+b(129,55)
7828 jvs(322) = -b(52,57)+b(59,57)+b(107,57)+0.5*b(108,57)
7829 jvs(323) = b(57,58)+b(59,58)+0.66*b(63,58)+2*b(124,58)+2 &
7830 *b(130,58)+b(140,58)+b(145,58)
7831 jvs(324) = b(48,59)-b(51,59)+0.3*b(55,59)+1.56*b(82,59)+b(85,59) &
7834 jvs(326) = 0.11*b(84,39)
7835 jvs(327) = -b(103,48)-b(107,48)-b(111,48)-b(115,48)
7838 jvs(330) = 0.11*b(84,51)
7839 jvs(331) = -b(103,55)
7840 jvs(332) = -b(111,56)
7841 jvs(333) = -b(107,57)
7845 jvs(337) = 0.77*b(99,33)
7846 jvs(338) = 0.03*b(83,36)
7847 jvs(339) = 0.09*b(84,39)
7850 jvs(342) = -b(102,49)-b(106,49)-b(110,49)-b(114,49)
7852 jvs(344) = 0.03*b(83,51)+0.09*b(84,51)
7853 jvs(345) = -b(102,55)
7854 jvs(346) = -b(110,56)
7855 jvs(347) = -b(106,57)
7856 jvs(348) = b(75,59)+0.77*b(99,59)
7858 jvs(350) = 0.05*b(91,19)
7860 jvs(352) = 0.5*b(104,44)+0.5*b(108,44)+b(112,44)+0.5*b(116,44)
7861 jvs(353) = 0.16*b(102,49)
7862 jvs(354) = -b(100,50)-b(101,50)
7865 jvs(357) = 0.05*b(91,55)+0.16*b(102,55)+0.5*b(104,55)
7866 jvs(358) = b(112,56)
7867 jvs(359) = 0.5*b(108,57)
7868 jvs(360) = -b(100,59)
7869 jvs(361) = -b(81,22)
7870 jvs(362) = -b(97,32)
7871 jvs(363) = -b(83,36)
7872 jvs(364) = -b(84,39)
7873 jvs(365) = b(13,43)-b(14,43)
7874 jvs(366) = 0.4*b(73,46)
7878 jvs(370) = -b(7,51)-b(8,51)-b(14,51)-b(18,51)-b(19,51)-b(20,51) &
7879 -b(21,51)-b(81,51)-b(83,51)-b(84,51)-b(97,51) &
7881 jvs(371) = -b(19,53)
7882 jvs(372) = -b(138,54)
7883 jvs(373) = -b(18,55)
7884 jvs(374) = -b(21,56)+0.4*b(73,56)
7886 jvs(376) = -b(20,59)
7887 jvs(377) = b(144,29)+b(145,29)
7888 jvs(378) = b(125,38)
7889 jvs(379) = -b(135,42)
7891 jvs(381) = -b(150,47)
7895 jvs(385) = b(138,51)
7896 jvs(386) = -b(135,52)-b(146,52)-b(147,52)-b(148,52)-b(149,52) &
7898 jvs(387) = b(137,53)-b(147,53)
7899 jvs(388) = b(125,54)+b(137,54)+b(138,54)+b(139,54)+b(140,54)
7900 jvs(389) = b(144,55)-b(148,55)
7901 jvs(390) = b(139,56)-b(149,56)
7903 jvs(392) = b(140,58)+b(145,58)
7906 jvs(395) = b(6,14)+b(43,14)
7907 jvs(396) = -b(94,17)
7908 jvs(397) = b(5,18)+b(28,18)+b(36,18)
7909 jvs(398) = 0.95*b(91,19)
7912 jvs(401) = b(144,29)
7913 jvs(402) = b(129,30)
7916 jvs(405) = b(105,37)+b(109,37)
7917 jvs(406) = b(123,38)
7920 jvs(409) = b(58,41)+b(60,41)
7922 jvs(411) = -b(15,43)-b(16,43)+b(17,43)
7923 jvs(412) = 1.5*b(104,44)+1.5*b(108,44)+0.5*b(116,44)
7925 jvs(414) = -b(69,46)+b(71,46)+b(72,46)
7927 jvs(416) = b(103,48)+b(107,48)
7928 jvs(417) = 0.84*b(102,49)+b(106,49)
7929 jvs(418) = b(101,50)
7930 jvs(419) = b(18,51)-b(19,51)
7931 jvs(420) = -b(147,52)
7932 jvs(421) = -b(1,53)-b(15,53)-b(16,53)-b(19,53)-b(24,53)-b(34,53) &
7933 -b(35,53)-b(39,53)-b(69,53)-b(94,53)-b(137,53) &
7935 jvs(422) = -b(137,54)
7936 jvs(423) = b(17,55)+b(18,55)+b(33,55)+2*b(37,55)+b(57,55) &
7937 +b(58,55)+b(71,55)+0.95*b(91,55)+0.84*b(102,55) &
7938 +b(103,55)+1.5*b(104,55)+b(105,55)+b(123,55)+b(129,55) &
7940 jvs(424) = b(33,56)-b(34,56)-b(35,56)+0.7*b(41,56)
7941 jvs(425) = b(57,58)+b(59,58)
7942 jvs(426) = -b(24,59)+b(25,59)+b(26,59)+b(28,59)
7943 jvs(427) = b(143,29)
7944 jvs(428) = b(129,30)+b(130,30)
7945 jvs(429) = b(121,34)+0.035*b(122,34)
7946 jvs(430) = b(123,38)+b(124,38)+1.85*b(126,38)
7947 jvs(431) = b(131,42)+b(132,42)+b(133,42)+b(134,42)+b(135,42)
7948 jvs(432) = b(121,43)
7949 jvs(433) = -b(138,51)
7950 jvs(434) = b(135,52)
7951 jvs(435) = -b(137,53)
7952 jvs(436) = -b(136,54)-b(137,54)-b(138,54)-b(139,54)-b(140,54) &
7953 -b(141,54)-b(142,54)
7954 jvs(437) = b(123,55)+b(129,55)
7955 jvs(438) = b(131,56)-b(139,56)
7956 jvs(439) = b(132,57)
7957 jvs(440) = b(124,58)+b(130,58)+b(133,58)-b(140,58)
7958 jvs(441) = 0.035*b(122,59)+b(134,59)-b(141,59)
7959 jvs(442) = -b(91,19)
7961 jvs(444) = -b(144,29)
7962 jvs(445) = -b(129,30)
7964 jvs(447) = -b(105,37)
7965 jvs(448) = -b(123,38)
7968 jvs(451) = -b(58,41)
7969 jvs(452) = b(15,43)-b(17,43)
7970 jvs(453) = -b(104,44)
7971 jvs(454) = -b(71,46)
7972 jvs(455) = -b(103,48)
7973 jvs(456) = -b(102,49)
7975 jvs(458) = -b(18,51)
7976 jvs(459) = -b(148,52)
7977 jvs(460) = b(1,53)+b(15,53)+b(38,53)+b(137,53)
7978 jvs(461) = b(137,54)
7979 jvs(462) = -b(17,55)-b(18,55)-b(23,55)-b(33,55)-b(37,55) &
7980 -b(57,55)-b(58,55)-b(71,55)-b(91,55)-b(102,55) &
7981 -b(103,55)-b(104,55)-b(105,55)-b(123,55)-b(129,55) &
7982 -b(144,55)-b(148,55)
7983 jvs(463) = -b(33,56)
7984 jvs(464) = 0.11*b(2,57)-b(37,57)+b(38,57)
7985 jvs(465) = -b(57,58)
7986 jvs(466) = -b(23,59)
7989 jvs(469) = 0.2*b(89,12)
7991 jvs(471) = 0.55*b(90,15)
7992 jvs(472) = b(5,18)+b(36,18)
7993 jvs(473) = 0.95*b(91,19)
7994 jvs(474) = 0.27*b(127,20)
7996 jvs(476) = 0.22*b(81,22)+b(82,22)
7999 jvs(479) = 0.6*b(92,26)
8001 jvs(481) = b(145,29)
8002 jvs(482) = b(130,30)
8003 jvs(483) = 2*b(95,32)+b(96,32)+0.76*b(97,32)
8004 jvs(484) = 0.9*b(98,33)
8005 jvs(485) = 0.965*b(122,34)
8006 jvs(486) = 0.26*b(83,36)+b(85,36)
8007 jvs(487) = -b(113,37)
8008 jvs(488) = b(124,38)
8009 jvs(489) = 0.22*b(84,39)+b(86,39)
8011 jvs(491) = b(58,41)+b(60,41)-b(62,41)+0.6*b(64,41)
8012 jvs(492) = -b(131,42)
8014 jvs(494) = 0.5*b(104,44)+0.5*b(108,44)-b(112,44)
8016 jvs(496) = -b(73,46)
8017 jvs(497) = 2*b(49,47)+b(51,47)+b(52,47)+b(150,47)
8018 jvs(498) = -b(111,48)
8019 jvs(499) = 0.76*b(102,49)+0.9*b(106,49)-b(110,49)+0.54*b(114,49)
8020 jvs(500) = 0.9*b(101,50)
8021 jvs(501) = b(20,51)-b(21,51)+0.22*b(81,51)+0.26*b(83,51)+0.22 &
8022 *b(84,51)+0.76*b(97,51)
8023 jvs(502) = -b(149,52)+b(150,52)
8024 jvs(503) = -b(34,53)-b(35,53)
8025 jvs(504) = -b(139,54)+b(140,54)
8026 jvs(505) = -b(33,55)+b(57,55)+b(58,55)+0.95*b(91,55)+0.76 &
8027 *b(102,55)+0.5*b(104,55)
8028 jvs(506) = -b(21,56)-b(29,56)-2*b(31,56)-2*b(32,56)-b(33,56) &
8029 -b(34,56)-b(35,56)-b(41,56)-b(61,56)-b(62,56)-b(73,56) &
8030 -b(110,56)-b(111,56)-b(112,56)-b(113,56)-b(131,56) &
8031 -b(139,56)-b(149,56)
8032 jvs(507) = b(25,57)-b(41,57)+b(52,57)+b(59,57)+b(60,57)+0.9 &
8033 *b(106,57)+0.5*b(108,57)
8034 jvs(508) = b(57,58)+b(59,58)-b(61,58)+0.32*b(63,58)+b(124,58) &
8035 +b(130,58)+b(140,58)+b(145,58)
8036 jvs(509) = b(20,59)+b(22,59)+b(25,59)-b(29,59)+b(30,59)+b(44,59) &
8037 +b(45,59)+b(48,59)+b(51,59)+b(65,59)+b(82,59)+b(85,59) &
8038 +b(86,59)+0.2*b(89,59)+0.55*b(90,59)+0.6*b(92,59)+2 &
8039 *b(95,59)+0.965*b(122,59)+0.27*b(127,59)
8040 jvs(510) = b(6,14)+b(43,14)
8041 jvs(511) = -b(93,26)
8043 jvs(513) = -b(120,34)
8044 jvs(514) = -b(87,36)
8045 jvs(515) = -b(109,37)
8046 jvs(516) = -b(88,39)
8047 jvs(517) = -b(80,40)
8048 jvs(518) = -b(60,41)
8049 jvs(519) = -b(132,42)
8051 jvs(521) = -b(108,44)
8052 jvs(522) = -b(68,45)
8053 jvs(523) = -b(72,46)
8054 jvs(524) = -b(52,47)
8055 jvs(525) = -b(107,48)
8056 jvs(526) = -b(106,49)
8060 jvs(530) = b(16,53)+b(19,53)-b(38,53)-b(39,53)
8062 jvs(532) = -b(37,55)
8063 jvs(533) = -b(41,56)
8064 jvs(534) = -b(2,57)-b(25,57)-b(37,57)-b(38,57)-b(39,57)-2 &
8065 *b(40,57)-b(41,57)-b(52,57)-b(59,57)-b(60,57)-b(68,57) &
8066 -b(72,57)-b(80,57)-b(87,57)-b(88,57)-b(93,57) &
8067 -b(106,57)-b(107,57)-b(108,57)-b(109,57)-b(120,57) &
8069 jvs(535) = -b(59,58)
8070 jvs(536) = -b(25,59)+b(27,59)
8071 jvs(537) = 0.73*b(127,20)
8072 jvs(538) = 0.7*b(55,25)
8073 jvs(539) = -b(145,29)
8074 jvs(540) = -b(130,30)
8075 jvs(541) = b(121,34)+0.035*b(122,34)
8077 jvs(543) = 0.07*b(83,36)
8078 jvs(544) = -b(124,38)
8079 jvs(545) = 0.1*b(84,39)
8080 jvs(546) = -b(133,42)
8081 jvs(547) = b(121,43)
8083 jvs(549) = b(71,46)+b(72,46)+b(74,46)
8087 jvs(553) = 0.07*b(83,51)+0.1*b(84,51)
8088 jvs(554) = b(146,52)
8090 jvs(556) = b(136,54)-b(140,54)
8091 jvs(557) = -b(57,55)+b(71,55)
8092 jvs(558) = -b(61,56)
8093 jvs(559) = -b(59,57)+b(72,57)
8094 jvs(560) = -b(57,58)-b(59,58)-b(61,58)-b(63,58)-b(124,58) &
8095 -b(130,58)-b(133,58)-b(140,58)-b(145,58)
8096 jvs(561) = b(46,59)+0.7*b(55,59)+0.035*b(122,59)+0.73*b(127,59)
8097 jvs(562) = 2*b(12,6)
8101 jvs(566) = -b(128,11)
8102 jvs(567) = -b(89,12)
8103 jvs(568) = 2*b(9,13)-b(30,13)
8104 jvs(569) = -b(90,15)
8105 jvs(570) = -b(75,16)
8106 jvs(571) = -b(28,18)
8107 jvs(572) = -b(127,20)
8108 jvs(573) = b(54,21)-0.5*b(56,21)
8109 jvs(574) = 0.12*b(81,22)-b(82,22)
8110 jvs(575) = -b(48,23)
8111 jvs(576) = b(3,24)-b(26,24)
8112 jvs(577) = b(53,25)-0.7*b(55,25)
8113 jvs(578) = -b(92,26)
8115 jvs(580) = -b(44,28)
8116 jvs(581) = b(4,31)-b(27,31)
8117 jvs(582) = -b(95,32)+0.08*b(97,32)
8118 jvs(583) = b(98,33)-0.77*b(99,33)
8119 jvs(584) = -b(119,34)-b(122,34)
8120 jvs(585) = -b(77,35)
8121 jvs(586) = 0.33*b(83,36)-b(85,36)
8122 jvs(587) = 0.6*b(84,39)-b(86,39)
8123 jvs(588) = -b(79,40)
8125 jvs(590) = -b(134,42)
8128 jvs(593) = -b(67,45)
8129 jvs(594) = -b(51,47)
8132 jvs(597) = -b(100,50)
8133 jvs(598) = -b(20,51)+b(21,51)+0.12*b(81,51)+0.33*b(83,51)+0.6 &
8134 *b(84,51)+0.08*b(97,51)
8136 jvs(600) = -b(24,53)
8137 jvs(601) = b(139,54)-b(141,54)
8138 jvs(602) = -b(23,55)+b(33,55)
8139 jvs(603) = b(21,56)-b(29,56)+b(33,56)+0.7*b(41,56)+b(139,56)
8140 jvs(604) = -b(25,57)+0.7*b(41,57)
8142 jvs(606) = -b(20,59)-b(22,59)-b(23,59)-b(24,59)-b(25,59) &
8143 -b(26,59)-b(27,59)-b(28,59)-b(29,59)-b(30,59)-b(44,59) &
8144 -b(45,59)-b(46,59)-b(47,59)-b(48,59)-b(51,59)-0.7 &
8145 *b(55,59)-0.5*b(56,59)-b(65,59)-b(67,59)-b(75,59) &
8146 -b(77,59)-b(79,59)-b(82,59)-b(85,59)-b(86,59)-b(89,59) &
8147 -b(90,59)-b(92,59)-b(95,59)-0.77*b(99,59)-b(100,59) &
8148 -b(119,59)-b(122,59)-b(127,59)-b(128,59)-b(134,59) &
8151 end subroutine cbmz_v02r05_jacob
8154 !-----------------------------------------------------------------------------
8155 subroutine cbmz_v02r05_decomp( n, v, ier, &
8156 lu_crow_v, lu_diag_v, lu_icol_v )
8158 ! computes l-u-decomposition of sparse jacobian
8159 ! for mechanism-version-regime = cbmz_v02r05
8161 use module_data_cbmz
8165 ! n = number of variable species [input]
8167 ! ier = status flag [output]
8168 ! 0 = success other = failure [output]
8171 ! v = elements of the sparse jacobian [input]
8172 real v(lu_nonzero_v_r05_kpp)
8174 integer lu_crow_v(nvar_r05_kpp + 1)
8175 integer lu_diag_v(nvar_r05_kpp + 1)
8176 integer lu_icol_v(lu_nonzero_v_r05_kpp)
8179 integer k, kk, j, jj
8180 real a, w(nvar_r05_kpp + 1)
8185 if ( v( lu_diag_v(k) ) .eq. 0. ) then
8189 do kk = lu_crow_v(k), lu_crow_v(k+1)-1
8190 w( lu_icol_v(kk) ) = v(kk)
8192 do kk = lu_crow_v(k), lu_diag_v(k)-1
8194 a = -w(j) / v( lu_diag_v(j) )
8196 do jj = lu_diag_v(j)+1, lu_crow_v(j+1)-1
8197 w( lu_icol_v(jj) ) = w( lu_icol_v(jj) ) + a*v(jj)
8200 do kk = lu_crow_v(k), lu_crow_v(k+1)-1
8201 v(kk) = w( lu_icol_v(kk) )
8205 end subroutine cbmz_v02r05_decomp
8208 !-----------------------------------------------------------------------------
8209 subroutine cbmz_v02r05_solve( jvs, x )
8211 ! does back-solve for mechanism-version-regime = cbmz_v02r05
8216 ! jvs = the non-zero elements of the l-u-decomposition
8217 ! of the augmented jacobian [input]
8219 ! x = the right-hand side of the linear equation set being solved [on input]
8220 ! x = concentrations of variable species [on output]
8224 x(16) = x(16)-jvs(53)*x(15)
8225 x(19) = x(19)-jvs(66)*x(12)-jvs(67)*x(15)
8226 x(26) = x(26)-jvs(98)*x(12)-jvs(99)*x(15)
8227 x(27) = x(27)-jvs(103)*x(16)
8228 x(28) = x(28)-jvs(115)*x(22)
8229 x(30) = x(30)-jvs(131)*x(11)-jvs(132)*x(20)
8230 x(31) = x(31)-jvs(138)*x(14)-jvs(139)*x(26)
8231 x(32) = x(32)-jvs(151)*x(19)-jvs(152)*x(26)
8232 x(35) = x(35)-jvs(167)*x(33)
8233 x(37) = x(37)-jvs(182)*x(12)-jvs(183)*x(15)-jvs(184)*x(22) &
8234 -jvs(185)*x(26)-jvs(186)*x(32)-jvs(187)*x(33)-jvs(188) &
8236 x(38) = x(38)-jvs(200)*x(34)
8237 x(40) = x(40)-jvs(212)*x(15)-jvs(213)*x(32)-jvs(214)*x(33) &
8238 -jvs(215)*x(36)-jvs(216)*x(39)
8239 x(41) = x(41)-jvs(225)*x(9)-jvs(226)*x(21)-jvs(227)*x(33) &
8240 -jvs(228)*x(36)-jvs(229)*x(39)
8241 x(42) = x(42)-jvs(239)*x(20)-jvs(240)*x(34)
8242 x(43) = x(43)-jvs(248)*x(6)-jvs(249)*x(34)
8243 x(44) = x(44)-jvs(256)*x(36)-jvs(257)*x(39)
8244 x(45) = x(45)-jvs(265)*x(7)-jvs(266)*x(21)-jvs(267)*x(22) &
8245 -jvs(268)*x(32)-jvs(269)*x(33)-jvs(270)*x(36)-jvs(271) &
8246 *x(39)-jvs(272)*x(41)-jvs(273)*x(44)
8247 x(46) = x(46)-jvs(283)*x(10)-jvs(284)*x(32)-jvs(285)*x(35) &
8248 -jvs(286)*x(36)-jvs(287)*x(39)-jvs(288)*x(40)-jvs(289) &
8250 x(47) = x(47)-jvs(300)*x(22)-jvs(301)*x(23)-jvs(302)*x(25) &
8251 -jvs(303)*x(29)-jvs(304)*x(30)-jvs(305)*x(32)-jvs(306) &
8252 *x(34)-jvs(307)*x(36)-jvs(308)*x(38)-jvs(309)*x(39) &
8253 -jvs(310)*x(42)-jvs(311)*x(43)-jvs(312)*x(44)
8254 x(48) = x(48)-jvs(325)*x(35)-jvs(326)*x(39)
8255 x(49) = x(49)-jvs(335)*x(16)-jvs(336)*x(27)-jvs(337)*x(33) &
8256 -jvs(338)*x(36)-jvs(339)*x(39)-jvs(340)*x(44)-jvs(341) &
8258 x(50) = x(50)-jvs(349)*x(17)-jvs(350)*x(19)-jvs(351)*x(26) &
8259 -jvs(352)*x(44)-jvs(353)*x(49)
8260 x(51) = x(51)-jvs(361)*x(22)-jvs(362)*x(32)-jvs(363)*x(36) &
8261 -jvs(364)*x(39)-jvs(365)*x(43)-jvs(366)*x(46)-jvs(367) &
8262 *x(48)-jvs(368)*x(49)-jvs(369)*x(50)
8263 x(52) = x(52)-jvs(377)*x(29)-jvs(378)*x(38)-jvs(379)*x(42) &
8264 -jvs(380)*x(43)-jvs(381)*x(47)-jvs(382)*x(48)-jvs(383) &
8265 *x(49)-jvs(384)*x(50)-jvs(385)*x(51)
8266 x(53) = x(53)-jvs(394)*x(10)-jvs(395)*x(14)-jvs(396)*x(17) &
8267 -jvs(397)*x(18)-jvs(398)*x(19)-jvs(399)*x(24)-jvs(400) &
8268 *x(26)-jvs(401)*x(29)-jvs(402)*x(30)-jvs(403)*x(31) &
8269 -jvs(404)*x(34)-jvs(405)*x(37)-jvs(406)*x(38)-jvs(407) &
8270 *x(39)-jvs(408)*x(40)-jvs(409)*x(41)-jvs(410)*x(42) &
8271 -jvs(411)*x(43)-jvs(412)*x(44)-jvs(413)*x(45)-jvs(414) &
8272 *x(46)-jvs(415)*x(47)-jvs(416)*x(48)-jvs(417)*x(49) &
8273 -jvs(418)*x(50)-jvs(419)*x(51)-jvs(420)*x(52)
8274 x(54) = x(54)-jvs(427)*x(29)-jvs(428)*x(30)-jvs(429)*x(34) &
8275 -jvs(430)*x(38)-jvs(431)*x(42)-jvs(432)*x(43)-jvs(433) &
8276 *x(51)-jvs(434)*x(52)-jvs(435)*x(53)
8277 x(55) = x(55)-jvs(442)*x(19)-jvs(443)*x(24)-jvs(444)*x(29) &
8278 -jvs(445)*x(30)-jvs(446)*x(34)-jvs(447)*x(37)-jvs(448) &
8279 *x(38)-jvs(449)*x(39)-jvs(450)*x(40)-jvs(451)*x(41) &
8280 -jvs(452)*x(43)-jvs(453)*x(44)-jvs(454)*x(46)-jvs(455) &
8281 *x(48)-jvs(456)*x(49)-jvs(457)*x(50)-jvs(458)*x(51) &
8282 -jvs(459)*x(52)-jvs(460)*x(53)-jvs(461)*x(54)
8283 x(56) = x(56)-jvs(467)*x(7)-jvs(468)*x(8)-jvs(469)*x(12) &
8284 -jvs(470)*x(13)-jvs(471)*x(15)-jvs(472)*x(18)-jvs(473) &
8285 *x(19)-jvs(474)*x(20)-jvs(475)*x(21)-jvs(476)*x(22) &
8286 -jvs(477)*x(23)-jvs(478)*x(25)-jvs(479)*x(26)-jvs(480) &
8287 *x(28)-jvs(481)*x(29)-jvs(482)*x(30)-jvs(483)*x(32) &
8288 -jvs(484)*x(33)-jvs(485)*x(34)-jvs(486)*x(36)-jvs(487) &
8289 *x(37)-jvs(488)*x(38)-jvs(489)*x(39)-jvs(490)*x(40) &
8290 -jvs(491)*x(41)-jvs(492)*x(42)-jvs(493)*x(43)-jvs(494) &
8291 *x(44)-jvs(495)*x(45)-jvs(496)*x(46)-jvs(497)*x(47) &
8292 -jvs(498)*x(48)-jvs(499)*x(49)-jvs(500)*x(50)-jvs(501) &
8293 *x(51)-jvs(502)*x(52)-jvs(503)*x(53)-jvs(504)*x(54) &
8295 x(57) = x(57)-jvs(510)*x(14)-jvs(511)*x(26)-jvs(512)*x(31) &
8296 -jvs(513)*x(34)-jvs(514)*x(36)-jvs(515)*x(37)-jvs(516) &
8297 *x(39)-jvs(517)*x(40)-jvs(518)*x(41)-jvs(519)*x(42) &
8298 -jvs(520)*x(43)-jvs(521)*x(44)-jvs(522)*x(45)-jvs(523) &
8299 *x(46)-jvs(524)*x(47)-jvs(525)*x(48)-jvs(526)*x(49) &
8300 -jvs(527)*x(50)-jvs(528)*x(51)-jvs(529)*x(52)-jvs(530) &
8301 *x(53)-jvs(531)*x(54)-jvs(532)*x(55)-jvs(533)*x(56)
8302 x(58) = x(58)-jvs(537)*x(20)-jvs(538)*x(25)-jvs(539)*x(29) &
8303 -jvs(540)*x(30)-jvs(541)*x(34)-jvs(542)*x(35)-jvs(543) &
8304 *x(36)-jvs(544)*x(38)-jvs(545)*x(39)-jvs(546)*x(42) &
8305 -jvs(547)*x(43)-jvs(548)*x(45)-jvs(549)*x(46)-jvs(550) &
8306 *x(48)-jvs(551)*x(49)-jvs(552)*x(50)-jvs(553)*x(51) &
8307 -jvs(554)*x(52)-jvs(555)*x(53)-jvs(556)*x(54)-jvs(557) &
8308 *x(55)-jvs(558)*x(56)-jvs(559)*x(57)
8309 x(59) = x(59)-jvs(562)*x(6)-jvs(563)*x(7)-jvs(564)*x(8)-jvs(565) &
8310 *x(9)-jvs(566)*x(11)-jvs(567)*x(12)-jvs(568)*x(13) &
8311 -jvs(569)*x(15)-jvs(570)*x(16)-jvs(571)*x(18)-jvs(572) &
8312 *x(20)-jvs(573)*x(21)-jvs(574)*x(22)-jvs(575)*x(23) &
8313 -jvs(576)*x(24)-jvs(577)*x(25)-jvs(578)*x(26)-jvs(579) &
8314 *x(27)-jvs(580)*x(28)-jvs(581)*x(31)-jvs(582)*x(32) &
8315 -jvs(583)*x(33)-jvs(584)*x(34)-jvs(585)*x(35)-jvs(586) &
8316 *x(36)-jvs(587)*x(39)-jvs(588)*x(40)-jvs(589)*x(41) &
8317 -jvs(590)*x(42)-jvs(591)*x(43)-jvs(592)*x(44)-jvs(593) &
8318 *x(45)-jvs(594)*x(47)-jvs(595)*x(48)-jvs(596)*x(49) &
8319 -jvs(597)*x(50)-jvs(598)*x(51)-jvs(599)*x(52)-jvs(600) &
8320 *x(53)-jvs(601)*x(54)-jvs(602)*x(55)-jvs(603)*x(56) &
8321 -jvs(604)*x(57)-jvs(605)*x(58)
8322 x(59) = x(59)/jvs(606)
8323 x(58) = (x(58)-jvs(561)*x(59))/(jvs(560))
8324 x(57) = (x(57)-jvs(535)*x(58)-jvs(536)*x(59))/(jvs(534))
8325 x(56) = (x(56)-jvs(507)*x(57)-jvs(508)*x(58)-jvs(509)*x(59))/ &
8327 x(55) = (x(55)-jvs(463)*x(56)-jvs(464)*x(57)-jvs(465)*x(58) &
8328 -jvs(466)*x(59))/(jvs(462))
8329 x(54) = (x(54)-jvs(437)*x(55)-jvs(438)*x(56)-jvs(439)*x(57) &
8330 -jvs(440)*x(58)-jvs(441)*x(59))/(jvs(436))
8331 x(53) = (x(53)-jvs(422)*x(54)-jvs(423)*x(55)-jvs(424)*x(56) &
8332 -jvs(425)*x(58)-jvs(426)*x(59))/(jvs(421))
8333 x(52) = (x(52)-jvs(387)*x(53)-jvs(388)*x(54)-jvs(389)*x(55) &
8334 -jvs(390)*x(56)-jvs(391)*x(57)-jvs(392)*x(58)-jvs(393) &
8336 x(51) = (x(51)-jvs(371)*x(53)-jvs(372)*x(54)-jvs(373)*x(55) &
8337 -jvs(374)*x(56)-jvs(375)*x(57)-jvs(376)*x(59))/(jvs(370))
8338 x(50) = (x(50)-jvs(355)*x(51)-jvs(356)*x(53)-jvs(357)*x(55) &
8339 -jvs(358)*x(56)-jvs(359)*x(57)-jvs(360)*x(59))/(jvs(354))
8340 x(49) = (x(49)-jvs(343)*x(50)-jvs(344)*x(51)-jvs(345)*x(55) &
8341 -jvs(346)*x(56)-jvs(347)*x(57)-jvs(348)*x(59))/(jvs(342))
8342 x(48) = (x(48)-jvs(328)*x(49)-jvs(329)*x(50)-jvs(330)*x(51) &
8343 -jvs(331)*x(55)-jvs(332)*x(56)-jvs(333)*x(57)-jvs(334) &
8345 x(47) = (x(47)-jvs(314)*x(48)-jvs(315)*x(50)-jvs(316)*x(51) &
8346 -jvs(317)*x(52)-jvs(318)*x(53)-jvs(319)*x(54)-jvs(320) &
8347 *x(55)-jvs(321)*x(56)-jvs(322)*x(57)-jvs(323)*x(58) &
8348 -jvs(324)*x(59))/(jvs(313))
8349 x(46) = (x(46)-jvs(291)*x(48)-jvs(292)*x(49)-jvs(293)*x(50) &
8350 -jvs(294)*x(51)-jvs(295)*x(53)-jvs(296)*x(55)-jvs(297) &
8351 *x(56)-jvs(298)*x(57)-jvs(299)*x(59))/(jvs(290))
8352 x(45) = (x(45)-jvs(275)*x(48)-jvs(276)*x(49)-jvs(277)*x(50) &
8353 -jvs(278)*x(51)-jvs(279)*x(55)-jvs(280)*x(56)-jvs(281) &
8354 *x(57)-jvs(282)*x(59))/(jvs(274))
8355 x(44) = (x(44)-jvs(259)*x(50)-jvs(260)*x(51)-jvs(261)*x(55) &
8356 -jvs(262)*x(56)-jvs(263)*x(57)-jvs(264)*x(59))/(jvs(258))
8357 x(43) = (x(43)-jvs(251)*x(51)-jvs(252)*x(53)-jvs(253)*x(55) &
8358 -jvs(254)*x(57)-jvs(255)*x(59))/(jvs(250))
8359 x(42) = (x(42)-jvs(242)*x(43)-jvs(243)*x(52)-jvs(244)*x(56) &
8360 -jvs(245)*x(57)-jvs(246)*x(58)-jvs(247)*x(59))/(jvs(241))
8361 x(41) = (x(41)-jvs(231)*x(48)-jvs(232)*x(49)-jvs(233)*x(50) &
8362 -jvs(234)*x(51)-jvs(235)*x(55)-jvs(236)*x(56)-jvs(237) &
8363 *x(57)-jvs(238)*x(59))/(jvs(230))
8364 x(40) = (x(40)-jvs(218)*x(48)-jvs(219)*x(49)-jvs(220)*x(51) &
8365 -jvs(221)*x(55)-jvs(222)*x(56)-jvs(223)*x(57)-jvs(224) &
8367 x(39) = (x(39)-jvs(209)*x(51)-jvs(210)*x(57)-jvs(211)*x(59))/ &
8369 x(38) = (x(38)-jvs(202)*x(43)-jvs(203)*x(54)-jvs(204)*x(55) &
8370 -jvs(205)*x(57)-jvs(206)*x(58)-jvs(207)*x(59))/(jvs(201))
8371 x(37) = (x(37)-jvs(190)*x(39)-jvs(191)*x(40)-jvs(192)*x(48) &
8372 -jvs(193)*x(49)-jvs(194)*x(50)-jvs(195)*x(51)-jvs(196) &
8373 *x(55)-jvs(197)*x(56)-jvs(198)*x(57)-jvs(199)*x(59))/ &
8375 x(36) = (x(36)-jvs(179)*x(51)-jvs(180)*x(57)-jvs(181)*x(59))/ &
8377 x(35) = (x(35)-jvs(169)*x(39)-jvs(170)*x(48)-jvs(171)*x(49) &
8378 -jvs(172)*x(50)-jvs(173)*x(51)-jvs(174)*x(55)-jvs(175) &
8379 *x(56)-jvs(176)*x(57)-jvs(177)*x(59))/(jvs(168))
8380 x(34) = (x(34)-jvs(164)*x(43)-jvs(165)*x(57)-jvs(166)*x(59))/ &
8382 x(33) = (x(33)-jvs(159)*x(48)-jvs(160)*x(49)-jvs(161)*x(56) &
8383 -jvs(162)*x(59))/(jvs(158))
8384 x(32) = (x(32)-jvs(154)*x(51)-jvs(155)*x(55)-jvs(156)*x(57) &
8385 -jvs(157)*x(59))/(jvs(153))
8386 x(31) = (x(31)-jvs(141)*x(34)-jvs(142)*x(40)-jvs(143)*x(42) &
8387 -jvs(144)*x(45)-jvs(145)*x(47)-jvs(146)*x(52)-jvs(147) &
8388 *x(53)-jvs(148)*x(56)-jvs(149)*x(57)-jvs(150)*x(59))/ &
8390 x(30) = (x(30)-jvs(134)*x(34)-jvs(135)*x(55)-jvs(136)*x(58) &
8391 -jvs(137)*x(59))/(jvs(133))
8392 x(29) = (x(29)-jvs(128)*x(54)-jvs(129)*x(55)-jvs(130)*x(58))/ &
8394 x(28) = (x(28)-jvs(117)*x(32)-jvs(118)*x(36)-jvs(119)*x(39) &
8395 -jvs(120)*x(40)-jvs(121)*x(45)-jvs(122)*x(47)-jvs(123) &
8396 *x(51)-jvs(124)*x(52)-jvs(125)*x(57)-jvs(126)*x(59))/ &
8398 x(27) = (x(27)-jvs(105)*x(33)-jvs(106)*x(36)-jvs(107)*x(39) &
8399 -jvs(108)*x(44)-jvs(109)*x(49)-jvs(110)*x(50)-jvs(111) &
8400 *x(51)-jvs(112)*x(55)-jvs(113)*x(57)-jvs(114)*x(59))/ &
8402 x(26) = (x(26)-jvs(101)*x(57)-jvs(102)*x(59))/(jvs(100))
8403 x(25) = (x(25)-jvs(94)*x(42)-jvs(95)*x(56)-jvs(96)*x(58)-jvs(97) &
8405 x(24) = (x(24)-jvs(88)*x(52)-jvs(89)*x(53)-jvs(90)*x(55)-jvs(91) &
8406 *x(56)-jvs(92)*x(59))/(jvs(87))
8407 x(23) = (x(23)-jvs(82)*x(36)-jvs(83)*x(39)-jvs(84)*x(51)-jvs(85) &
8408 *x(58)-jvs(86)*x(59))/(jvs(81))
8409 x(22) = (x(22)-jvs(79)*x(51)-jvs(80)*x(59))/(jvs(78))
8410 x(21) = (x(21)-jvs(75)*x(41)-jvs(76)*x(56)-jvs(77)*x(59))/ &
8412 x(20) = (x(20)-jvs(72)*x(34)-jvs(73)*x(59))/(jvs(71))
8413 x(19) = (x(19)-jvs(69)*x(55)-jvs(70)*x(59))/(jvs(68))
8414 x(18) = (x(18)-jvs(63)*x(53)-jvs(64)*x(56)-jvs(65)*x(59))/ &
8416 x(17) = (x(17)-jvs(58)*x(26)-jvs(59)*x(53)-jvs(60)*x(57)-jvs(61) &
8418 x(16) = (x(16)-jvs(55)*x(27)-jvs(56)*x(59))/(jvs(54))
8419 x(15) = (x(15)-jvs(52)*x(59))/(jvs(51))
8420 x(14) = (x(14)-jvs(49)*x(53)-jvs(50)*x(57))/(jvs(48))
8421 x(13) = (x(13)-jvs(45)*x(42)-jvs(46)*x(56)-jvs(47)*x(59))/ &
8423 x(12) = (x(12)-jvs(43)*x(59))/(jvs(42))
8424 x(11) = (x(11)-jvs(40)*x(20)-jvs(41)*x(59))/(jvs(39))
8425 x(10) = (x(10)-jvs(37)*x(46)-jvs(38)*x(53))/(jvs(36))
8426 x(9) = (x(9)-jvs(34)*x(41)-jvs(35)*x(59))/(jvs(33))
8427 x(8) = (x(8)-jvs(31)*x(54)-jvs(32)*x(59))/(jvs(30))
8428 x(7) = (x(7)-jvs(29)*x(59))/(jvs(28))
8429 x(6) = (x(6)-jvs(27)*x(51))/(jvs(26))
8430 x(5) = (x(5)-jvs(25)*x(38))/(jvs(24))
8431 x(4) = (x(4)-jvs(16)*x(42)-jvs(17)*x(47)-jvs(18)*x(52)-jvs(19) &
8432 *x(53)-jvs(20)*x(54)-jvs(21)*x(55)-jvs(22)*x(56)-jvs(23) &
8434 x(3) = (x(3)-jvs(10)*x(36)-jvs(11)*x(39)-jvs(12)*x(46)-jvs(13) &
8435 *x(51)-jvs(14)*x(56))/(jvs(9))
8436 x(2) = (x(2)-jvs(6)*x(22)-jvs(7)*x(36)-jvs(8)*x(51))/(jvs(5))
8437 x(1) = (x(1)-jvs(2)*x(8)-jvs(3)*x(52)-jvs(4)*x(59))/(jvs(1))
8439 end subroutine cbmz_v02r05_solve
8442 ! cbmz_v02r06_torodas.f - created on 18-nov-2003 from previous
8443 ! cbmz_v02r06_torodas.f cbmz_v02r06_mapconcs.f
8444 ! cbmz_v02r06_maprates.f cbmz_v02r06_dydt.f
8445 ! cbmz_v02r06_jacob.f cbmz_v02r06_decomp.f
8446 ! cbmz_v02r06_solve.f
8447 ! so now everything is in a single file
8448 !-----------------------------------------------------------------------
8450 subroutine cbmz_v02r06_torodas( &
8452 stot, atol, rtol, yposlimit, yneglimit, &
8453 sfixedkpp, rconstkpp, &
8455 info_rodas, iok, lunerr, idydt_sngldble )
8457 ! interfaces to rodas3 solver formechanism-version-regime =cbmz_v02r06
8459 ! *** do not include any pegasus common blocks ***
8461 use module_data_cbmz
8462 use module_cbmz_rodas3_solver, only: rodas3_ff_x2
8466 integer ngas, iok, lunerr, idydt_sngldble
8467 integer info_rodas(6)
8468 real taa, tzz, hmin, hstart
8469 real stot(ngas), atol(ngas), rtol(ngas)
8470 real yposlimit(ngas), yneglimit(ngas)
8471 real sfixedkpp(nfixed_kppmax), rconstkpp(nreact_kppmax)
8475 ! external cbmz_v02r06_dydt
8476 ! external cbmz_v02r06_jacob
8477 ! external cbmz_v02r06_decomp
8478 ! external cbmz_v02r06_solve
8484 integer lu_crow_v(nvar_r06_kpp + 1)
8486 integer lu_diag_v(nvar_r06_kpp + 1)
8488 integer lu_icol_v(lu_nonzero_v_r06_kpp)
8491 data( lu_icol_v(i), i = 1, 252 ) / &
8492 1, 8, 54, 61, 2, 22, 37, 38, 51, 58, 3, 37, &
8493 42, 52, 58, 63, 4, 45, 49, 50, 54, 56, 60, 61, &
8494 63, 5, 39, 6, 58, 7, 61, 8, 50, 61, 9, 44, &
8495 61, 10, 52, 56, 11, 19, 61, 12, 61, 13, 45, 61, &
8496 63, 14, 56, 62, 15, 61, 16, 26, 56, 61, 62, 17, &
8497 56, 61, 63, 12, 15, 18, 60, 61, 19, 34, 61, 20, &
8498 30, 37, 42, 47, 53, 57, 58, 59, 60, 61, 62, 21, &
8499 44, 61, 63, 22, 58, 61, 23, 37, 42, 55, 58, 61, &
8500 24, 54, 56, 60, 61, 63, 25, 45, 55, 61, 63, 12, &
8501 15, 26, 61, 62, 27, 50, 55, 60, 11, 19, 28, 34, &
8502 55, 60, 61, 29, 38, 60, 62, 63, 15, 20, 29, 30, &
8503 35, 37, 38, 42, 47, 51, 53, 57, 58, 59, 60, 61, &
8504 62, 63, 22, 31, 32, 36, 37, 38, 42, 43, 48, 49, &
8505 51, 54, 58, 60, 61, 62, 18, 26, 32, 58, 60, 61, &
8506 62, 14, 26, 33, 34, 43, 45, 48, 49, 51, 54, 56, &
8507 61, 62, 63, 34, 46, 61, 62, 35, 38, 60, 61, 63, &
8508 36, 51, 60, 61, 63, 37, 58, 61, 62, 38, 58, 61, &
8509 62, 34, 39, 46, 50, 55, 60, 61, 62, 12, 15, 22, &
8510 26, 32, 37, 38, 40, 42, 43, 51, 53, 57, 58, 59, &
8511 60, 61, 62, 63, 36, 41, 42, 51, 53, 57, 58, 59, &
8512 60, 61, 62, 63, 64, 42, 58, 61, 62, 15, 32, 36 /
8514 data( lu_icol_v(i), i = 253, 504 ) / &
8515 37, 42, 43, 51, 53, 58, 60, 61, 62, 63, 64, 9, &
8516 21, 37, 42, 44, 53, 57, 58, 59, 60, 61, 62, 63, &
8517 19, 34, 45, 46, 54, 55, 61, 62, 63, 6, 34, 46, &
8518 56, 58, 60, 61, 62, 37, 42, 47, 57, 58, 60, 61, &
8519 62, 63, 7, 21, 22, 29, 32, 36, 37, 38, 42, 44, &
8520 47, 48, 51, 53, 57, 58, 59, 60, 61, 62, 63, 22, &
8521 23, 25, 27, 28, 32, 34, 35, 36, 37, 38, 39, 42, &
8522 45, 46, 47, 49, 50, 51, 54, 55, 56, 57, 58, 60, &
8523 61, 62, 63, 64, 27, 28, 34, 39, 45, 46, 50, 54, &
8524 55, 56, 58, 60, 61, 62, 63, 29, 35, 38, 51, 58, &
8525 60, 61, 62, 63, 10, 32, 37, 38, 41, 42, 43, 48, &
8526 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 63, 64, &
8527 35, 36, 38, 51, 53, 58, 59, 60, 61, 62, 63, 64, &
8528 27, 39, 45, 46, 49, 50, 51, 54, 55, 56, 57, 58, &
8529 60, 61, 62, 63, 64, 19, 25, 27, 28, 34, 37, 39, &
8530 41, 42, 45, 46, 48, 50, 51, 52, 53, 54, 55, 56, &
8531 57, 58, 59, 60, 61, 62, 63, 64, 10, 14, 16, 17, &
8532 18, 24, 26, 27, 28, 29, 33, 34, 35, 36, 38, 39, &
8533 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, &
8534 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, &
8535 16, 18, 26, 29, 35, 38, 47, 51, 56, 57, 58, 59 /
8537 data( lu_icol_v(i), i = 505, 715 ) / &
8538 60, 61, 62, 63, 64, 22, 32, 37, 38, 42, 46, 50, &
8539 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, &
8540 63, 64, 30, 35, 37, 38, 42, 47, 51, 53, 57, 58, &
8541 59, 60, 61, 62, 63, 64, 18, 24, 27, 28, 29, 34, &
8542 35, 36, 38, 39, 40, 42, 43, 44, 46, 47, 50, 51, &
8543 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, &
8544 64, 6, 7, 8, 9, 11, 12, 13, 15, 17, 19, 21, &
8545 22, 23, 24, 25, 26, 30, 31, 32, 33, 34, 35, 36, &
8546 37, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, &
8547 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, &
8548 64, 14, 26, 33, 34, 37, 38, 40, 42, 43, 44, 45, &
8549 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, &
8550 58, 59, 60, 61, 62, 63, 64, 7, 8, 12, 13, 15, &
8551 17, 18, 19, 21, 22, 23, 25, 26, 27, 28, 29, 31, &
8552 32, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, &
8553 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, &
8554 58, 59, 60, 61, 62, 63, 64, 41, 42, 51, 53, 57, &
8555 58, 59, 60, 61, 62, 63, 64 /
8558 1, 5, 11, 17, 26, 28, 30, 32, 35, 38, 41, 44, &
8559 46, 50, 53, 55, 60, 64, 69, 72, 84, 88, 91, 97, &
8560 103,108,113,117,124,129,147,163,170,184,188,193, &
8561 198,202,206,214,233,246,250,264,277,286,294,303, &
8562 324,353,368,377,397,409,426,453,493,510,531,547, &
8563 578,626,656,704,716 /
8566 1, 5, 11, 17, 26, 28, 30, 32, 35, 38, 41, 44, &
8567 46, 50, 53, 55, 60, 66, 69, 72, 84, 88, 91, 97, &
8568 103,110,113,119,124,132,148,165,172,184,188,193, &
8569 198,202,207,221,234,246,255,268,279,288,296,314, &
8570 340,359,371,386,401,416,443,484,502,524,541,573, &
8571 622,653,702,715,716 /
8581 ! do not integrate if hmax is less/equal to hmin
8582 ! because hmin is generally 0.1 s or less
8583 if (hmax .le. 1.001*hmin) then
8588 call rodas3_ff_x2( &
8589 nvar_r06_kpp, taa, tzz, hmin, hmax, hstart, &
8590 stot, atol, rtol, yposlimit, yneglimit, &
8591 sfixedkpp, rconstkpp, &
8592 lu_nonzero_v_r06_kpp, lu_crow_v, lu_diag_v, lu_icol_v, &
8593 info_rodas, iok, lunerr, &
8595 cbmz_v02r06_jacob, &
8596 cbmz_v02r06_decomp, &
8600 end subroutine cbmz_v02r06_torodas
8603 !-----------------------------------------------------------------------------
8604 subroutine cbmz_v02r06_mapconcs( imap, nyy, yy, yyfixed, cbox )
8606 ! maps species concentrations (gaschemistry cbox array <--> kpp yy array)
8607 ! for mechanism-version-regime = cbmz_v02r06
8609 use module_data_cbmz
8613 ! imap = mapping direction flag [input]
8614 ! 0 = map cbox --> yy and yyfixed
8615 ! 1 = map yy --> cbox
8617 ! nyy = number of kpp "variable" species [output]
8619 ! yy = kpp species concentrations array [input/output]
8620 real yy(nvar_r06_kpp)
8621 ! yyfixed = kpp species concentrations array [input/output]
8622 real yyfixed(nfixed_kppmax)
8623 ! cbox = main gaschemistry species conc array [input/output]
8628 parameter ( ih2so4_kpp = 1 )
8630 parameter ( ihcooh_kpp = 2 )
8632 parameter ( ircooh_kpp = 3 )
8634 parameter ( imsa_kpp = 4 )
8636 parameter ( imtf_kpp = 5 )
8638 parameter ( io1d_kpp = 6 )
8640 parameter ( ic2h5oh_kpp = 7 )
8642 parameter ( iso2_kpp = 8 )
8644 parameter ( ic2h6_kpp = 9 )
8646 parameter ( ipan_kpp = 10 )
8648 parameter ( idmso2_kpp = 11 )
8650 parameter ( itol_kpp = 12 )
8652 parameter ( ih2o2_kpp = 13 )
8654 parameter ( in2o5_kpp = 14 )
8656 parameter ( ixyl_kpp = 15 )
8658 parameter ( icro_kpp = 16 )
8660 parameter ( ihno4_kpp = 17 )
8662 parameter ( ito2_kpp = 18 )
8664 parameter ( idmso_kpp = 19 )
8666 parameter ( ixpar_kpp = 20 )
8668 parameter ( iethooh_kpp = 21 )
8670 parameter ( ieth_kpp = 22 )
8672 parameter ( ich3oh_kpp = 23 )
8674 parameter ( ihono_kpp = 24 )
8676 parameter ( ich3ooh_kpp = 25 )
8678 parameter ( icres_kpp = 26 )
8679 integer ich3so2oo_kpp
8680 parameter ( ich3so2oo_kpp = 27 )
8681 integer ich3so2ch2oo_kpp
8682 parameter ( ich3so2ch2oo_kpp = 28 )
8684 parameter ( iisopn_kpp = 29 )
8686 parameter ( ipar_kpp = 30 )
8688 parameter ( ico_kpp = 31 )
8690 parameter ( iopen_kpp = 32 )
8692 parameter ( ihno3_kpp = 33 )
8694 parameter ( idms_kpp = 34 )
8696 parameter ( iisopp_kpp = 35 )
8698 parameter ( iisopo2_kpp = 36 )
8700 parameter ( iolet_kpp = 37 )
8702 parameter ( iisop_kpp = 38 )
8703 integer ich3sch2oo_kpp
8704 parameter ( ich3sch2oo_kpp = 39 )
8706 parameter ( ixo2_kpp = 40 )
8708 parameter ( iaone_kpp = 41 )
8710 parameter ( iolei_kpp = 42 )
8712 parameter ( imgly_kpp = 43 )
8714 parameter ( iethp_kpp = 44 )
8715 integer ich3so2h_kpp
8716 parameter ( ich3so2h_kpp = 45 )
8718 parameter ( io3p_kpp = 46 )
8720 parameter ( inap_kpp = 47 )
8722 parameter ( iald2_kpp = 48 )
8724 parameter ( ihcho_kpp = 49 )
8726 parameter ( ich3so2_kpp = 50 )
8728 parameter ( iisoprd_kpp = 51 )
8730 parameter ( ic2o3_kpp = 52 )
8732 parameter ( irooh_kpp = 53 )
8734 parameter ( ich3so3_kpp = 54 )
8736 parameter ( ich3o2_kpp = 55 )
8738 parameter ( ino2_kpp = 56 )
8740 parameter ( ionit_kpp = 57 )
8742 parameter ( io3_kpp = 58 )
8744 parameter ( iro2_kpp = 59 )
8746 parameter ( ino_kpp = 60 )
8748 parameter ( ioh_kpp = 61 )
8750 parameter ( ino3_kpp = 62 )
8752 parameter ( iho2_kpp = 63 )
8754 parameter ( iano2_kpp = 64 )
8756 ! indexes declaration for fixed species
8758 parameter ( ich4_kpp = 1 )
8760 parameter ( ih2o_kpp = 2 )
8762 parameter ( ih2_kpp = 3 )
8764 parameter ( io2_kpp = 4 )
8766 parameter ( in2_kpp = 5 )
8771 if (imap .le. 0) goto 1000
8772 if (imap .ge. 1) goto 2000
8776 ! map cbox values into yyvarkpp and yyfixkpp
8779 yy(ih2so4_kpp) = cbox(ih2so4_z)
8780 yy(ihcooh_kpp) = cbox(ihcooh_z)
8781 yy(ircooh_kpp) = cbox(ircooh_z)
8782 yy(imsa_kpp) = cbox(imsa_z)
8783 yy(imtf_kpp) = cbox(imtf_z)
8784 yy(io1d_kpp) = cbox(io1d_z)
8785 yy(ic2h5oh_kpp) = cbox(ic2h5oh_z)
8786 yy(iso2_kpp) = cbox(iso2_z)
8787 yy(ic2h6_kpp) = cbox(ic2h6_z)
8788 yy(ipan_kpp) = cbox(ipan_z)
8789 yy(idmso2_kpp) = cbox(idmso2_z)
8790 yy(itol_kpp) = cbox(itol_z)
8791 yy(ih2o2_kpp) = cbox(ih2o2_z)
8792 yy(in2o5_kpp) = cbox(in2o5_z)
8793 yy(ixyl_kpp) = cbox(ixyl_z)
8794 yy(icro_kpp) = cbox(icro_z)
8795 yy(ihno4_kpp) = cbox(ihno4_z)
8796 yy(ito2_kpp) = cbox(ito2_z)
8797 yy(idmso_kpp) = cbox(idmso_z)
8798 yy(ixpar_kpp) = cbox(ixpar_z)
8799 yy(iethooh_kpp) = cbox(iethooh_z)
8800 yy(ieth_kpp) = cbox(ieth_z)
8801 yy(ich3oh_kpp) = cbox(ich3oh_z)
8802 yy(ihono_kpp) = cbox(ihono_z)
8803 yy(ich3ooh_kpp) = cbox(ich3ooh_z)
8804 yy(icres_kpp) = cbox(icres_z)
8805 yy(ich3so2oo_kpp) = cbox(ich3so2oo_z)
8806 yy(ich3so2ch2oo_kpp) = cbox(ich3so2ch2oo_z)
8807 yy(iisopn_kpp) = cbox(iisopn_z)
8808 yy(ipar_kpp) = cbox(ipar_z)
8809 yy(ico_kpp) = cbox(ico_z)
8810 yy(iopen_kpp) = cbox(iopen_z)
8811 yy(ihno3_kpp) = cbox(ihno3_z)
8812 yy(idms_kpp) = cbox(idms_z)
8813 yy(iisopp_kpp) = cbox(iisopp_z)
8814 yy(iisopo2_kpp) = cbox(iisopo2_z)
8815 yy(iolet_kpp) = cbox(iolet_z)
8816 yy(iisop_kpp) = cbox(iisop_z)
8817 yy(ich3sch2oo_kpp) = cbox(ich3sch2oo_z)
8818 yy(ixo2_kpp) = cbox(ixo2_z)
8819 yy(iaone_kpp) = cbox(iaone_z)
8820 yy(iolei_kpp) = cbox(iolei_z)
8821 yy(imgly_kpp) = cbox(imgly_z)
8822 yy(iethp_kpp) = cbox(iethp_z)
8823 yy(ich3so2h_kpp) = cbox(ich3so2h_z)
8824 yy(io3p_kpp) = cbox(io3p_z)
8825 yy(inap_kpp) = cbox(inap_z)
8826 yy(iald2_kpp) = cbox(iald2_z)
8827 yy(ihcho_kpp) = cbox(ihcho_z)
8828 yy(ich3so2_kpp) = cbox(ich3so2_z)
8829 yy(iisoprd_kpp) = cbox(iisoprd_z)
8830 yy(ic2o3_kpp) = cbox(ic2o3_z)
8831 yy(irooh_kpp) = cbox(irooh_z)
8832 yy(ich3so3_kpp) = cbox(ich3so3_z)
8833 yy(ich3o2_kpp) = cbox(ich3o2_z)
8834 yy(ino2_kpp) = cbox(ino2_z)
8835 yy(ionit_kpp) = cbox(ionit_z)
8836 yy(io3_kpp) = cbox(io3_z)
8837 yy(iro2_kpp) = cbox(iro2_z)
8838 yy(ino_kpp) = cbox(ino_z)
8839 yy(ioh_kpp) = cbox(ioh_z)
8840 yy(ino3_kpp) = cbox(ino3_z)
8841 yy(iho2_kpp) = cbox(iho2_z)
8842 yy(iano2_kpp) = cbox(iano2_z)
8844 yyfixed(ich4_kpp) = cbox(ich4_z)
8845 yyfixed(ih2o_kpp) = cbox(ih2o_z)
8846 yyfixed(ih2_kpp) = cbox(ih2_z)
8847 yyfixed(io2_kpp) = cbox(io2_z)
8848 yyfixed(in2_kpp) = cbox(in2_z)
8851 ! map yyvarkpp values into cbox
8854 cbox(ih2so4_z) = yy(ih2so4_kpp)
8855 cbox(ihcooh_z) = yy(ihcooh_kpp)
8856 cbox(ircooh_z) = yy(ircooh_kpp)
8857 cbox(imsa_z) = yy(imsa_kpp)
8858 cbox(imtf_z) = yy(imtf_kpp)
8859 cbox(io1d_z) = yy(io1d_kpp)
8860 cbox(ic2h5oh_z) = yy(ic2h5oh_kpp)
8861 cbox(iso2_z) = yy(iso2_kpp)
8862 cbox(ic2h6_z) = yy(ic2h6_kpp)
8863 cbox(ipan_z) = yy(ipan_kpp)
8864 cbox(idmso2_z) = yy(idmso2_kpp)
8865 cbox(itol_z) = yy(itol_kpp)
8866 cbox(ih2o2_z) = yy(ih2o2_kpp)
8867 cbox(in2o5_z) = yy(in2o5_kpp)
8868 cbox(ixyl_z) = yy(ixyl_kpp)
8869 cbox(icro_z) = yy(icro_kpp)
8870 cbox(ihno4_z) = yy(ihno4_kpp)
8871 cbox(ito2_z) = yy(ito2_kpp)
8872 cbox(idmso_z) = yy(idmso_kpp)
8873 cbox(ixpar_z) = yy(ixpar_kpp)
8874 cbox(iethooh_z) = yy(iethooh_kpp)
8875 cbox(ieth_z) = yy(ieth_kpp)
8876 cbox(ich3oh_z) = yy(ich3oh_kpp)
8877 cbox(ihono_z) = yy(ihono_kpp)
8878 cbox(ich3ooh_z) = yy(ich3ooh_kpp)
8879 cbox(icres_z) = yy(icres_kpp)
8880 cbox(ich3so2oo_z) = yy(ich3so2oo_kpp)
8881 cbox(ich3so2ch2oo_z) = yy(ich3so2ch2oo_kpp)
8882 cbox(iisopn_z) = yy(iisopn_kpp)
8883 cbox(ipar_z) = yy(ipar_kpp)
8884 cbox(ico_z) = yy(ico_kpp)
8885 cbox(iopen_z) = yy(iopen_kpp)
8886 cbox(ihno3_z) = yy(ihno3_kpp)
8887 cbox(idms_z) = yy(idms_kpp)
8888 cbox(iisopp_z) = yy(iisopp_kpp)
8889 cbox(iisopo2_z) = yy(iisopo2_kpp)
8890 cbox(iolet_z) = yy(iolet_kpp)
8891 cbox(iisop_z) = yy(iisop_kpp)
8892 cbox(ich3sch2oo_z) = yy(ich3sch2oo_kpp)
8893 cbox(ixo2_z) = yy(ixo2_kpp)
8894 cbox(iaone_z) = yy(iaone_kpp)
8895 cbox(iolei_z) = yy(iolei_kpp)
8896 cbox(imgly_z) = yy(imgly_kpp)
8897 cbox(iethp_z) = yy(iethp_kpp)
8898 cbox(ich3so2h_z) = yy(ich3so2h_kpp)
8899 cbox(io3p_z) = yy(io3p_kpp)
8900 cbox(inap_z) = yy(inap_kpp)
8901 cbox(iald2_z) = yy(iald2_kpp)
8902 cbox(ihcho_z) = yy(ihcho_kpp)
8903 cbox(ich3so2_z) = yy(ich3so2_kpp)
8904 cbox(iisoprd_z) = yy(iisoprd_kpp)
8905 cbox(ic2o3_z) = yy(ic2o3_kpp)
8906 cbox(irooh_z) = yy(irooh_kpp)
8907 cbox(ich3so3_z) = yy(ich3so3_kpp)
8908 cbox(ich3o2_z) = yy(ich3o2_kpp)
8909 cbox(ino2_z) = yy(ino2_kpp)
8910 cbox(ionit_z) = yy(ionit_kpp)
8911 cbox(io3_z) = yy(io3_kpp)
8912 cbox(iro2_z) = yy(iro2_kpp)
8913 cbox(ino_z) = yy(ino_kpp)
8914 cbox(ioh_z) = yy(ioh_kpp)
8915 cbox(ino3_z) = yy(ino3_kpp)
8916 cbox(iho2_z) = yy(iho2_kpp)
8917 cbox(iano2_z) = yy(iano2_kpp)
8920 end subroutine cbmz_v02r06_mapconcs
8923 !-----------------------------------------------------------------------------
8924 subroutine cbmz_v02r06_maprates( &
8931 ! maps reaction rate constants (host code array --> kpp rconst array)
8932 ! for mechanism-version-regime = cbmz_v02r06
8934 use module_data_cbmz
8938 ! all are host-code reaction-rate-constant arrays [input]
8943 real rconst(nreact_kppmax)
8948 do i = 1, nreact_kppmax
8953 rconst(1) = (rk_m1(1))
8954 rconst(2) = (rk_m1(2))
8955 rconst(3) = (rk_m1(3))
8956 rconst(4) = (rk_m1(4))
8957 rconst(5) = (rk_m1(5))
8958 rconst(6) = (rk_m1(6))
8959 rconst(7) = (rk_m1(7))
8960 rconst(8) = (rk_m1(8))
8961 rconst(9) = (rk_m1(9))
8962 rconst(10) = (rk_m1(10))
8963 rconst(11) = (rk_m1(11))
8964 rconst(12) = (rk_m1(12))
8965 rconst(13) = (rk_m1(13))
8966 rconst(14) = (rk_m1(14))
8967 rconst(15) = (rk_m1(15))
8968 rconst(16) = (rk_m1(16))
8969 rconst(17) = (rk_m1(17))
8970 rconst(18) = (rk_m1(18))
8971 rconst(19) = (rk_m1(19))
8972 rconst(20) = (rk_m1(20))
8973 rconst(21) = (rk_m1(21))
8974 rconst(22) = (rk_m1(22))
8975 rconst(23) = (rk_m1(23))
8976 rconst(24) = (rk_m1(24))
8977 rconst(25) = (rk_m1(25))
8978 rconst(26) = (rk_m1(26))
8979 rconst(27) = (rk_m1(27))
8980 rconst(28) = (rk_m1(28))
8981 rconst(29) = (rk_m1(29))
8982 rconst(30) = (rk_m1(30))
8983 rconst(31) = (rk_m1(31))
8984 rconst(32) = (rk_m1(32))
8985 rconst(33) = (rk_m1(33))
8986 rconst(34) = (rk_m1(34))
8987 rconst(35) = (rk_m1(35))
8988 rconst(36) = (rk_m1(36))
8989 rconst(37) = (rk_m1(37))
8990 rconst(38) = (rk_m1(38))
8991 rconst(39) = (rk_m1(39))
8992 rconst(40) = (rk_m1(40))
8993 rconst(41) = (rk_m1(41))
8994 rconst(42) = (rk_m1(42))
8995 rconst(43) = (rk_m1(43))
8996 rconst(44) = (rk_m1(44))
8997 rconst(45) = (rk_m1(45))
8998 rconst(46) = (rk_m1(46))
8999 rconst(47) = (rk_m1(47))
9000 rconst(48) = (rk_m1(48))
9001 rconst(49) = (rk_m1(49))
9002 rconst(50) = (rk_m1(50))
9003 rconst(51) = (rk_m1(51))
9004 rconst(52) = (rk_m1(52))
9005 rconst(53) = (rk_m1(53))
9006 rconst(54) = (rk_m1(54))
9007 rconst(55) = (rk_m1(55))
9008 rconst(56) = (rk_m1(56))
9009 rconst(57) = (rk_m1(57))
9010 rconst(58) = (rk_m1(58))
9011 rconst(59) = (rk_m1(59))
9012 rconst(60) = (rk_m1(60))
9013 rconst(61) = (rk_m1(61))
9014 rconst(62) = (rk_m1(62))
9015 rconst(63) = (rk_m1(63))
9016 rconst(64) = (rk_m1(64))
9017 rconst(65) = (rk_m1(65))
9018 rconst(66) = (rk_m2(2))
9019 rconst(67) = (rk_m2(3))
9020 rconst(68) = (rk_m2(4))
9021 rconst(69) = (rk_m2(31))
9022 rconst(70) = (rk_m2(32))
9023 rconst(71) = (rk_m2(34))
9024 rconst(72) = (rk_m2(39))
9025 rconst(73) = (rk_m2(44))
9026 rconst(74) = (rk_m2(49))
9027 rconst(75) = (rk_m2(1))
9028 rconst(76) = (rk_m2(5))
9029 rconst(77) = (rk_m2(6))
9030 rconst(78) = (rk_m2(7))
9031 rconst(79) = (rk_m2(8))
9032 rconst(80) = (rk_m2(9))
9033 rconst(81) = (rk_m2(10))
9034 rconst(82) = (rk_m2(11))
9035 rconst(83) = (rk_m2(12))
9036 rconst(84) = (rk_m2(13))
9037 rconst(85) = (rk_m2(14))
9038 rconst(86) = (rk_m2(15))
9039 rconst(87) = (rk_m2(16))
9040 rconst(88) = (rk_m2(17))
9041 rconst(89) = (rk_m2(18))
9042 rconst(90) = (rk_m2(19))
9043 rconst(91) = (rk_m2(20))
9044 rconst(92) = (rk_m2(21))
9045 rconst(93) = (rk_m2(22))
9046 rconst(94) = (rk_m2(23))
9047 rconst(95) = (rk_m2(24))
9048 rconst(96) = (rk_m2(25))
9049 rconst(97) = (rk_m2(26))
9050 rconst(98) = (rk_m2(27))
9051 rconst(99) = (rk_m2(28))
9052 rconst(100) = (rk_m2(29))
9053 rconst(101) = (rk_m2(30))
9054 rconst(102) = (rk_m2(33))
9055 rconst(103) = (rk_m2(35))
9056 rconst(104) = (rk_m2(36))
9057 rconst(105) = (rk_m2(37))
9058 rconst(106) = (rk_m2(38))
9059 rconst(107) = (rk_m2(40))
9060 rconst(108) = (rk_m2(41))
9061 rconst(109) = (rk_m2(42))
9062 rconst(110) = (rk_m2(43))
9063 rconst(111) = (rk_m2(45))
9064 rconst(112) = (rk_m2(46))
9065 rconst(113) = (rk_m2(47))
9066 rconst(114) = (rk_m2(48))
9067 rconst(115) = (rk_m2(50))
9068 rconst(116) = (rk_m2(51))
9069 rconst(117) = (rk_m2(52))
9070 rconst(118) = (rk_m2(53))
9071 rconst(119) = (rk_m3(1))
9072 rconst(120) = (rk_m3(2))
9073 rconst(121) = (rk_m3(3))
9074 rconst(122) = (rk_m3(4))
9075 rconst(123) = (rk_m3(5))
9076 rconst(124) = (rk_m3(6))
9077 rconst(125) = (rk_m3(7))
9078 rconst(126) = (rk_m3(8))
9079 rconst(127) = (rk_m3(9))
9080 rconst(128) = (rk_m3(10))
9081 rconst(129) = (rk_m3(11))
9082 rconst(130) = (rk_m3(12))
9083 rconst(131) = (rk_m3(13))
9084 rconst(132) = (rk_m3(14))
9085 rconst(133) = (rk_m3(15))
9086 rconst(134) = (rk_m3(16))
9087 rconst(135) = (rk_m4(1))
9088 rconst(136) = (rk_m4(2))
9089 rconst(137) = (rk_m4(3))
9090 rconst(138) = (rk_m4(4))
9091 rconst(139) = (rk_m4(5))
9092 rconst(140) = (rk_m4(6))
9093 rconst(141) = (rk_m4(7))
9094 rconst(142) = (rk_m4(8))
9095 rconst(143) = (rk_m4(9))
9096 rconst(144) = (rk_m4(10))
9097 rconst(145) = (rk_m4(11))
9098 rconst(146) = (rk_m4(12))
9099 rconst(147) = (rk_m4(13))
9100 rconst(148) = (rk_m4(14))
9101 rconst(149) = (rk_m4(15))
9102 rconst(150) = (rk_m4(16))
9103 rconst(151) = (rk_m4(17))
9104 rconst(152) = (rk_m4(18))
9105 rconst(153) = (rk_m4(19))
9106 rconst(154) = (rk_m4(20))
9107 rconst(155) = (rk_m4(21))
9108 rconst(156) = (rk_m4(22))
9109 rconst(157) = (rk_m4(23))
9110 rconst(158) = (rk_m4(24))
9111 rconst(159) = (rk_m4(25))
9112 rconst(160) = (rk_m4(26))
9113 rconst(161) = (rk_m4(27))
9114 rconst(162) = (rk_m4(28))
9115 rconst(163) = (rk_m4(29))
9116 rconst(164) = (rk_m4(30))
9117 rconst(165) = (rk_m4(31))
9118 rconst(166) = (rk_m4(32))
9120 end subroutine cbmz_v02r06_maprates
9123 !-----------------------------------------------------------------------------
9124 subroutine cbmz_v02r06_dydt( nvardum, tdum, v, a_var, f, rconst )
9126 ! computes rates of change for mechanism-version-regime = cbmz_v02r06
9128 use module_data_cbmz
9132 ! nvardum = number of variable species [input]
9134 ! tdum = time [input]
9136 ! v = concentrations of variable species [input]
9137 real v(nvar_r06_kpp)
9138 ! a_var = dydt for each species [output]
9139 real a_var(nvar_r06_kpp)
9140 ! f = concentrations of fixed species [input]
9141 real f(nfixed_kppmax)
9142 ! rconst = reaction rate constants [input]
9143 real rconst(nreact_r06_kpp)
9146 ! a = rate for each reaction
9147 real a(nreact_r06_kpp)
9149 ! computation of equation rates
9150 a(1) = rconst(1)*v(56)
9151 a(2) = rconst(2)*v(62)
9152 a(3) = rconst(3)*v(24)
9153 a(4) = rconst(4)*v(33)
9154 a(5) = rconst(5)*v(17)
9155 a(6) = rconst(6)*v(14)
9156 a(7) = rconst(7)*v(58)
9157 a(8) = rconst(8)*v(58)
9158 a(9) = rconst(9)*v(13)
9159 a(10) = rconst(10)*v(6)*f(4)
9160 a(11) = rconst(11)*v(6)*f(5)
9161 a(12) = rconst(12)*v(6)*f(2)
9162 a(13) = rconst(13)*v(46)*f(4)
9163 a(14) = rconst(14)*v(46)*v(58)
9164 a(15) = rconst(15)*v(46)*v(56)
9165 a(16) = rconst(16)*v(46)*v(56)
9166 a(17) = rconst(17)*v(46)*v(60)
9167 a(18) = rconst(18)*v(58)*v(60)
9168 a(19) = rconst(19)*v(56)*v(58)
9169 a(20) = rconst(20)*v(58)*v(61)
9170 a(21) = rconst(21)*v(58)*v(63)
9171 a(22) = rconst(22)*v(61)*f(3)
9172 a(23) = rconst(23)*v(60)*v(61)
9173 a(24) = rconst(24)*v(56)*v(61)
9174 a(25) = rconst(25)*v(61)*v(62)
9175 a(26) = rconst(26)*v(24)*v(61)
9176 a(27) = rconst(27)*v(33)*v(61)
9177 a(28) = rconst(28)*v(17)*v(61)
9178 a(29) = rconst(29)*v(61)*v(63)
9179 a(30) = rconst(30)*v(13)*v(61)
9180 a(31) = rconst(31)*v(63)*v(63)
9181 a(32) = rconst(32)*v(63)*v(63)*f(2)
9182 a(33) = rconst(33)*v(60)*v(63)
9183 a(34) = rconst(34)*v(56)*v(63)
9184 a(35) = rconst(35)*v(56)*v(63)
9185 a(36) = rconst(36)*v(17)
9186 a(37) = rconst(37)*v(60)*v(62)
9187 a(38) = rconst(38)*v(56)*v(62)
9188 a(39) = rconst(39)*v(56)*v(62)
9189 a(40) = rconst(40)*v(62)*v(62)
9190 a(41) = rconst(41)*v(62)*v(63)
9191 a(42) = rconst(42)*v(14)*f(2)
9192 a(43) = rconst(43)*v(14)
9193 a(44) = rconst(44)*v(31)*v(61)
9194 a(45) = rconst(45)*v(8)*v(61)
9195 a(46) = rconst(46)*v(61)*f(1)
9196 a(47) = rconst(47)*v(9)*v(61)
9197 a(48) = rconst(48)*v(23)*v(61)
9198 a(49) = rconst(49)*v(49)
9199 a(50) = rconst(50)*v(49)
9200 a(51) = rconst(51)*v(49)*v(61)
9201 a(52) = rconst(52)*v(49)*v(62)
9202 a(53) = rconst(53)*v(25)
9203 a(54) = rconst(54)*v(21)
9204 a(55) = rconst(55)*v(25)*v(61)
9205 a(56) = rconst(56)*v(21)*v(61)
9206 a(57) = rconst(57)*v(55)*v(60)
9207 a(58) = rconst(58)*v(44)*v(60)
9208 a(59) = rconst(59)*v(55)*v(62)
9209 a(60) = rconst(60)*v(44)*v(62)
9210 a(61) = rconst(61)*v(55)*v(63)
9211 a(62) = rconst(62)*v(44)*v(63)
9212 a(63) = rconst(63)*v(55)
9213 a(64) = rconst(64)*v(44)
9214 a(65) = rconst(65)*v(7)*v(61)
9215 a(66) = rconst(66)*v(48)
9216 a(67) = rconst(67)*v(48)*v(61)
9217 a(68) = rconst(68)*v(48)*v(62)
9218 a(69) = rconst(69)*v(52)*v(56)
9219 a(70) = rconst(70)*v(10)
9220 a(71) = rconst(71)*v(52)*v(60)
9221 a(72) = rconst(72)*v(52)*v(62)
9222 a(73) = rconst(73)*v(52)*v(63)
9223 a(74) = rconst(74)*v(52)
9224 a(75) = rconst(75)*v(30)*v(61)
9225 a(76) = rconst(76)*v(41)
9226 a(77) = rconst(77)*v(41)*v(61)
9227 a(78) = rconst(78)*v(43)
9228 a(79) = rconst(79)*v(43)*v(61)
9229 a(80) = rconst(80)*v(43)*v(62)
9230 a(81) = rconst(81)*v(22)*v(58)
9231 a(82) = rconst(82)*v(22)*v(61)
9232 a(83) = rconst(83)*v(37)*v(58)
9233 a(84) = rconst(84)*v(42)*v(58)
9234 a(85) = rconst(85)*v(37)*v(61)
9235 a(86) = rconst(86)*v(42)*v(61)
9236 a(87) = rconst(87)*v(37)*v(62)
9237 a(88) = rconst(88)*v(42)*v(62)
9238 a(89) = rconst(89)*v(12)*v(61)
9239 a(90) = rconst(90)*v(15)*v(61)
9240 a(91) = rconst(91)*v(18)*v(60)
9241 a(92) = rconst(92)*v(26)*v(61)
9242 a(93) = rconst(93)*v(26)*v(62)
9243 a(94) = rconst(94)*v(16)*v(56)
9244 a(95) = rconst(95)*v(32)*v(61)
9245 a(96) = rconst(96)*v(32)
9246 a(97) = rconst(97)*v(32)*v(58)
9247 a(98) = rconst(98)*v(53)
9248 a(99) = rconst(99)*v(53)*v(61)
9249 a(100) = rconst(100)*v(57)*v(61)
9250 a(101) = rconst(101)*v(57)
9251 a(102) = rconst(102)*v(59)*v(60)
9252 a(103) = rconst(103)*v(60)*v(64)
9253 a(104) = rconst(104)*v(47)*v(60)
9254 a(105) = rconst(105)*v(40)*v(60)
9255 a(106) = rconst(106)*v(59)*v(62)
9256 a(107) = rconst(107)*v(62)*v(64)
9257 a(108) = rconst(108)*v(47)*v(62)
9258 a(109) = rconst(109)*v(40)*v(62)
9259 a(110) = rconst(110)*v(59)*v(63)
9260 a(111) = rconst(111)*v(63)*v(64)
9261 a(112) = rconst(112)*v(47)*v(63)
9262 a(113) = rconst(113)*v(40)*v(63)
9263 a(114) = rconst(114)*v(59)
9264 a(115) = rconst(115)*v(64)
9265 a(116) = rconst(116)*v(47)
9266 a(117) = rconst(117)*v(40)
9267 a(118) = rconst(118)*v(20)*v(30)
9268 a(119) = rconst(119)*v(38)*v(61)
9269 a(120) = rconst(120)*v(38)*v(58)
9270 a(121) = rconst(121)*v(38)*v(62)
9271 a(122) = rconst(122)*v(51)
9272 a(123) = rconst(123)*v(51)*v(61)
9273 a(124) = rconst(124)*v(51)*v(58)
9274 a(125) = rconst(125)*v(51)*v(62)
9275 a(126) = rconst(126)*v(35)*v(60)
9276 a(127) = rconst(127)*v(29)*v(60)
9277 a(128) = rconst(128)*v(36)*v(60)
9278 a(129) = rconst(129)*v(35)*v(63)
9279 a(130) = rconst(130)*v(29)*v(63)
9280 a(131) = rconst(131)*v(36)*v(63)
9281 a(132) = rconst(132)*v(35)
9282 a(133) = rconst(133)*v(29)
9283 a(134) = rconst(134)*v(36)
9284 a(135) = rconst(135)*v(34)*v(61)
9285 a(136) = rconst(136)*v(34)*v(62)
9286 a(137) = rconst(137)*v(34)*v(46)
9287 a(138) = rconst(138)*v(34)*v(61)
9288 a(139) = rconst(139)*v(39)*v(60)
9289 a(140) = rconst(140)*v(39)*v(55)
9290 a(141) = rconst(141)*v(39)*v(50)
9291 a(142) = rconst(142)*v(39)*v(39)
9292 a(143) = rconst(143)*v(19)*v(61)
9293 a(144) = rconst(144)*v(11)*v(61)
9294 a(145) = rconst(145)*v(28)*v(60)
9295 a(146) = rconst(146)*v(28)*v(55)
9296 a(147) = rconst(147)*v(45)*v(63)
9297 a(148) = rconst(148)*v(45)*v(62)
9298 a(149) = rconst(149)*v(45)*v(55)
9299 a(150) = rconst(150)*v(45)*v(61)
9300 a(151) = rconst(151)*v(45)*v(54)
9301 a(152) = rconst(152)*v(50)
9302 a(153) = rconst(153)*v(50)*v(56)
9303 a(154) = rconst(154)*v(50)*v(58)
9304 a(155) = rconst(155)*v(50)*v(63)
9305 a(156) = rconst(156)*v(50)*v(55)
9306 a(157) = rconst(157)*v(50)*v(61)
9307 a(158) = rconst(158)*v(50)*f(4)
9308 a(159) = rconst(159)*v(27)
9309 a(160) = rconst(160)*v(27)*v(60)
9310 a(161) = rconst(161)*v(27)*v(55)
9311 a(162) = rconst(162)*v(54)
9312 a(163) = rconst(163)*v(54)*v(56)
9313 a(164) = rconst(164)*v(54)*v(60)
9314 a(165) = rconst(165)*v(54)*v(63)
9315 a(166) = rconst(166)*v(49)*v(54)
9317 ! aggregate function
9318 a_var(1) = a(45)+a(162)
9319 a_var(2) = 0.52*a(81)+0.22*a(83)+0.39*a(120)+0.46*a(124)
9320 a_var(3) = 0.4*a(73)+0.09*a(83)+0.16*a(84)
9321 a_var(4) = a(151)+a(157)+a(163)+a(164)+a(165)+a(166)
9322 a_var(5) = 0.15*a(142)
9323 a_var(6) = a(8)-a(10)-a(11)-a(12)
9325 a_var(8) = -a(45)+a(152)
9326 a_var(9) = -a(47)+0.2*a(64)
9327 a_var(10) = a(69)-a(70)
9328 a_var(11) = 0.27*a(143)-a(144)
9330 a_var(13) = -a(9)-a(30)+a(31)+a(32)+a(147)
9331 a_var(14) = -a(6)+a(39)-a(42)-a(43)
9333 a_var(16) = 0.4*a(92)+a(93)-a(94)
9334 a_var(17) = -a(5)-a(28)+a(34)-a(36)
9335 a_var(18) = 0.8*a(89)+0.45*a(90)-a(91)
9336 a_var(19) = 0.965*a(138)-a(143)
9337 a_var(20) = 1.06*a(83)+2.26*a(84)+a(85)+2.23*a(86)+1.98*a(98) &
9338 +0.42*a(99)+1.98*a(101)+1.68*a(102)+a(104)+1.98 &
9339 *a(106)+a(108)+1.25*a(114)+a(116)-a(118)
9340 a_var(21) = -a(54)-a(56)+a(62)
9341 a_var(22) = -a(81)-a(82)
9342 a_var(23) = -a(48)+0.34*a(63)+0.03*a(83)+0.04*a(84)
9343 a_var(24) = -a(3)+a(23)-a(26)+a(35)+a(164)
9344 a_var(25) = -a(53)-a(55)+a(61)+a(149)
9345 a_var(26) = 0.12*a(89)+0.05*a(90)-a(92)-a(93)
9346 a_var(27) = a(158)-a(159)-a(160)-a(161)
9347 a_var(28) = a(144)-a(145)-a(146)
9348 a_var(29) = a(121)-a(127)-a(130)-a(133)
9349 a_var(30) = -a(75)+1.1*a(90)-a(118)+1.86*a(125)+0.18*a(126)+1.6 &
9350 *a(127)+2*a(130)+2*a(133)
9351 a_var(31) = -a(44)+a(49)+a(50)+a(51)+a(52)+a(66)+a(78)+a(80) &
9352 +0.24*a(81)+0.31*a(83)+0.3*a(84)+2*a(95)+a(96)+0.69 &
9353 *a(97)+0.07*a(120)+0.33*a(122)+0.16*a(124)+0.64 &
9354 *a(125)+0.59*a(128)+a(166)
9355 a_var(32) = 0.95*a(91)+0.3*a(92)-a(95)-a(96)-a(97)
9356 a_var(33) = -a(4)+a(24)-a(27)+0.3*a(41)+2*a(42)+a(52)+a(68) &
9357 +a(80)+a(93)+0.07*a(125)+a(136)+a(148)+a(163)
9358 a_var(34) = -a(135)-a(136)-a(137)-a(138)
9359 a_var(35) = a(119)-a(126)-a(129)-a(132)
9360 a_var(36) = 0.5*a(123)-a(128)-a(131)-a(134)
9361 a_var(37) = -a(83)-a(85)-a(87)
9362 a_var(38) = -a(119)-a(120)-a(121)
9363 a_var(39) = a(135)+a(136)-a(139)-a(140)-a(141)-2*a(142)
9364 a_var(40) = a(79)+a(82)+a(85)+a(86)+0.08*a(89)+0.5*a(90)+0.6 &
9365 *a(92)+a(95)+0.03*a(97)+0.4*a(98)+0.4*a(101)+0.34 &
9366 *a(102)-a(105)+0.4*a(106)-a(109)-a(113)+0.24*a(114) &
9367 -a(117)+0.08*a(119)+0.2*a(120)+0.2*a(123)+0.07*a(124) &
9369 a_var(41) = -a(76)-a(77)+0.07*a(84)+0.23*a(86)+0.74*a(98)+0.74 &
9370 *a(101)+0.62*a(102)+0.74*a(106)+0.57*a(114)+0.15 &
9371 *a(115)+0.03*a(122)+0.09*a(124)+0.63*a(128)+0.5 &
9373 a_var(42) = -a(84)-a(86)-a(88)
9374 a_var(43) = -a(78)-a(79)-a(80)+0.04*a(83)+0.07*a(84)+0.8*a(90) &
9375 +0.2*a(97)+0.19*a(99)+0.15*a(115)+0.85*a(124)+0.34 &
9377 a_var(44) = a(47)+0.5*a(56)-a(58)-a(60)-a(62)-a(64)+0.06*a(83) &
9378 +0.05*a(84)+0.1*a(98)+0.1*a(101)+0.08*a(102)+0.1 &
9380 a_var(45) = 0.73*a(143)-a(147)-a(148)-a(149)-a(150)-a(151)
9381 a_var(46) = a(1)+0.89*a(2)+a(7)+a(10)+a(11)-a(13)-a(14)-a(15) &
9383 a_var(47) = a(87)+a(88)+a(100)-a(104)-a(108)-a(112)-a(116)
9384 a_var(48) = a(54)+0.5*a(56)+a(58)+a(60)+0.8*a(64)+a(65)-a(66) &
9385 -a(67)-a(68)+0.22*a(82)+0.47*a(83)+1.03*a(84)+a(85) &
9386 +1.77*a(86)+0.03*a(97)+0.3*a(98)+0.04*a(99)+0.3 &
9387 *a(101)+0.25*a(102)+0.5*a(104)+0.3*a(106)+0.5*a(108) &
9388 +0.21*a(114)+0.5*a(116)+0.15*a(120)+0.07*a(122)+0.02 &
9389 *a(124)+0.28*a(125)+0.8*a(127)+0.55*a(128)+a(133)+0.5 &
9391 a_var(49) = a(48)-a(49)-a(50)-a(51)-a(52)+a(53)+0.3*a(55)+a(57) &
9392 +a(59)+0.66*a(63)+a(81)+1.56*a(82)+0.57*a(83)+a(85) &
9393 +a(95)+0.7*a(97)+a(103)+0.5*a(104)+a(107)+0.5*a(108) &
9394 +0.7*a(115)+0.5*a(116)+0.6*a(120)+0.2*a(122)+0.15 &
9395 *a(124)+0.28*a(125)+0.63*a(126)+0.25*a(128)+a(139)+2 &
9396 *a(140)+a(141)+a(145)+2*a(146)+a(156)+a(161)-a(166)
9397 a_var(50) = a(137)+0.035*a(138)+a(139)+a(140)+1.85*a(142)+a(145) &
9398 +a(146)+a(147)+a(148)+a(149)+a(150)+a(151)-a(152) &
9399 -a(153)-a(154)-a(155)-a(156)-a(157)-a(158)+a(159)
9400 a_var(51) = 0.65*a(120)-a(122)-a(123)-a(124)-a(125)+0.91*a(126) &
9402 a_var(52) = a(67)+a(68)-a(69)+a(70)-a(71)-a(72)-a(73)-a(74) &
9403 +a(76)+a(78)+a(79)+a(80)+0.13*a(83)+0.19*a(84)+a(95) &
9404 +a(96)+0.62*a(97)+a(103)+a(107)+0.7*a(115)+0.2*a(120) &
9405 +0.97*a(122)+0.5*a(123)+0.11*a(124)+0.07*a(125)
9406 a_var(53) = -a(98)-a(99)+a(110)+a(111)+a(129)+a(131)
9407 a_var(54) = a(141)-a(151)+a(153)+a(154)+a(155)+a(156)+a(160) &
9408 +a(161)-a(162)-a(163)-a(164)-a(165)-a(166)
9409 a_var(55) = a(46)+0.7*a(55)-a(57)-a(59)-a(61)-a(63)+a(66)+a(71) &
9410 +a(72)+a(74)+a(76)+0.07*a(83)+0.1*a(84)+0.7*a(122) &
9411 +0.05*a(124)+a(137)+0.035*a(138)-a(140)+0.73*a(143) &
9412 -a(146)-a(149)+a(152)-a(156)-a(161)+a(162)
9413 a_var(56) = -a(1)+0.89*a(2)+a(4)+a(5)+a(6)-a(15)-a(16)+a(17) &
9414 +a(18)-a(19)-a(24)+a(25)+a(26)+a(28)+a(33)-a(34) &
9415 -a(35)+a(36)+2*a(37)-a(39)+2*a(40)+0.7*a(41)+a(43) &
9416 +a(57)+a(58)+a(59)+a(60)-a(69)+a(70)+a(71)+a(72)+0.95 &
9417 *a(91)-a(94)+a(101)+0.84*a(102)+a(103)+1.5*a(104) &
9418 +a(105)+a(106)+a(107)+1.5*a(108)+a(109)+0.5*a(116) &
9419 +0.91*a(126)+1.2*a(127)+a(128)+a(139)+a(145)-a(153) &
9421 a_var(57) = 0.05*a(91)+a(94)-a(100)-a(101)+0.16*a(102)+0.5 &
9422 *a(104)+0.5*a(108)+a(112)+0.5*a(116)+0.93*a(125)+0.09 &
9423 *a(126)+0.8*a(127)+a(130)+a(133)
9424 a_var(58) = -a(7)-a(8)+a(13)-a(14)-a(18)-a(19)-a(20)-a(21)+0.4 &
9425 *a(73)-a(81)-a(83)-a(84)-a(97)-a(120)-a(124)-a(154)
9426 a_var(59) = a(75)+0.03*a(83)+0.09*a(84)+0.77*a(99)-a(102)-a(106) &
9428 a_var(60) = a(1)+0.11*a(2)+a(3)+a(15)-a(17)-a(18)-a(23)-a(33) &
9429 -a(37)+a(38)-a(57)-a(58)-a(71)-a(91)-a(102)-a(103) &
9430 -a(104)-a(105)-a(126)-a(127)-a(128)-a(139)-a(145) &
9431 +a(153)-a(160)-a(164)
9432 a_var(61) = a(3)+a(4)+2*a(9)+2*a(12)-a(20)+a(21)-a(22)-a(23) &
9433 -a(24)-a(25)-a(26)-a(27)-a(28)-a(29)-a(30)+a(33)+0.7 &
9434 *a(41)-a(44)-a(45)-a(46)-a(47)-a(48)-a(51)+a(53) &
9435 +a(54)-0.7*a(55)-0.5*a(56)-a(65)-a(67)-a(75)-a(77) &
9436 -a(79)+0.12*a(81)-a(82)+0.33*a(83)+0.6*a(84)-a(85) &
9437 -a(86)-a(89)-a(90)-a(92)-a(95)+0.08*a(97)+a(98)-0.77 &
9438 *a(99)-a(100)-a(119)+0.27*a(120)-a(123)+0.27*a(124) &
9439 -a(135)-a(138)-a(143)-a(144)-a(150)+a(155)-a(157)
9440 a_var(62) = -a(2)+a(6)+a(16)+a(19)-a(25)+a(27)-a(37)-a(38)-a(39) &
9441 -2*a(40)-a(41)+a(43)-a(52)-a(59)-a(60)-a(68)-a(72) &
9442 -a(80)-a(87)-a(88)-a(93)-a(106)-a(107)-a(108)-a(109) &
9443 -a(121)-a(125)-a(136)-a(148)
9444 a_var(63) = a(5)+a(20)-a(21)+a(22)+a(25)-a(29)+a(30)-2*a(31)-2 &
9445 *a(32)-a(33)-a(34)-a(35)+a(36)-a(41)+a(44)+a(45) &
9446 +a(48)+2*a(49)+a(51)+a(52)+a(53)+a(54)+a(57)+a(58) &
9447 +a(59)+a(60)-a(61)-a(62)+0.32*a(63)+0.6*a(64)+a(65) &
9448 +a(66)-a(73)+a(78)+0.22*a(81)+a(82)+0.26*a(83)+0.22 &
9449 *a(84)+a(85)+a(86)+0.2*a(89)+0.55*a(90)+0.95*a(91) &
9450 +0.6*a(92)+2*a(95)+a(96)+0.76*a(97)+0.9*a(98)+0.9 &
9451 *a(101)+0.76*a(102)+0.5*a(104)+0.9*a(106)+0.5*a(108) &
9452 -a(110)-a(111)-a(112)-a(113)+0.54*a(114)+0.07*a(120) &
9453 +0.33*a(122)+0.1*a(124)+0.93*a(125)+0.91*a(126)+0.8 &
9454 *a(127)+a(128)-a(129)-a(130)-a(131)+0.965*a(138) &
9455 +a(140)+0.27*a(143)+a(146)-a(147)-a(155)+a(156) &
9456 +a(161)-a(165)+a(166)
9457 a_var(64) = a(77)+0.11*a(84)-a(103)-a(107)-a(111)-a(115)
9459 end subroutine cbmz_v02r06_dydt
9462 !-----------------------------------------------------------------------------
9463 subroutine cbmz_v02r06_jacob( nvardum, tdum, v, jvs, f, rconst )
9465 ! computes jacobian for mechanism-version-regime = cbmz_v02r06
9467 use module_data_cbmz
9471 ! nvardum = number of variable species [input]
9473 ! tdum = time [input]
9475 ! v = concentrations of variable species [input]
9476 real v(nvar_r06_kpp)
9477 ! jvs = non-zero jacobian elements [output]
9478 real jvs(lu_nonzero_v_r06_kpp)
9479 ! f = concentrations of fixed species [input]
9480 real f(nfixed_kppmax)
9481 ! rconst = reaction rate constants [input]
9482 real rconst(nreact_r06_kpp)
9485 ! b(i,j) = d[reaction_rate(i)] / d[species_conc(j)]
9486 real b(nreact_r06_kpp,nvar_r06_kpp)
9488 ! computation of b(i,j) = da(i)/dv(j)
9498 b(10,6) = rconst(10)*f(4)
9499 b(11,6) = rconst(11)*f(5)
9500 b(12,6) = rconst(12)*f(2)
9501 b(13,46) = rconst(13)*f(4)
9502 b(14,46) = rconst(14)*v(58)
9503 b(14,58) = rconst(14)*v(46)
9504 b(15,46) = rconst(15)*v(56)
9505 b(15,56) = rconst(15)*v(46)
9506 b(16,46) = rconst(16)*v(56)
9507 b(16,56) = rconst(16)*v(46)
9508 b(17,46) = rconst(17)*v(60)
9509 b(17,60) = rconst(17)*v(46)
9510 b(18,58) = rconst(18)*v(60)
9511 b(18,60) = rconst(18)*v(58)
9512 b(19,56) = rconst(19)*v(58)
9513 b(19,58) = rconst(19)*v(56)
9514 b(20,58) = rconst(20)*v(61)
9515 b(20,61) = rconst(20)*v(58)
9516 b(21,58) = rconst(21)*v(63)
9517 b(21,63) = rconst(21)*v(58)
9518 b(22,61) = rconst(22)*f(3)
9519 b(23,60) = rconst(23)*v(61)
9520 b(23,61) = rconst(23)*v(60)
9521 b(24,56) = rconst(24)*v(61)
9522 b(24,61) = rconst(24)*v(56)
9523 b(25,61) = rconst(25)*v(62)
9524 b(25,62) = rconst(25)*v(61)
9525 b(26,24) = rconst(26)*v(61)
9526 b(26,61) = rconst(26)*v(24)
9527 b(27,33) = rconst(27)*v(61)
9528 b(27,61) = rconst(27)*v(33)
9529 b(28,17) = rconst(28)*v(61)
9530 b(28,61) = rconst(28)*v(17)
9531 b(29,61) = rconst(29)*v(63)
9532 b(29,63) = rconst(29)*v(61)
9533 b(30,13) = rconst(30)*v(61)
9534 b(30,61) = rconst(30)*v(13)
9535 b(31,63) = rconst(31)*2*v(63)
9536 b(32,63) = rconst(32)*2*v(63)*f(2)
9537 b(33,60) = rconst(33)*v(63)
9538 b(33,63) = rconst(33)*v(60)
9539 b(34,56) = rconst(34)*v(63)
9540 b(34,63) = rconst(34)*v(56)
9541 b(35,56) = rconst(35)*v(63)
9542 b(35,63) = rconst(35)*v(56)
9543 b(36,17) = rconst(36)
9544 b(37,60) = rconst(37)*v(62)
9545 b(37,62) = rconst(37)*v(60)
9546 b(38,56) = rconst(38)*v(62)
9547 b(38,62) = rconst(38)*v(56)
9548 b(39,56) = rconst(39)*v(62)
9549 b(39,62) = rconst(39)*v(56)
9550 b(40,62) = rconst(40)*2*v(62)
9551 b(41,62) = rconst(41)*v(63)
9552 b(41,63) = rconst(41)*v(62)
9553 b(42,14) = rconst(42)*f(2)
9554 b(43,14) = rconst(43)
9555 b(44,31) = rconst(44)*v(61)
9556 b(44,61) = rconst(44)*v(31)
9557 b(45,8) = rconst(45)*v(61)
9558 b(45,61) = rconst(45)*v(8)
9559 b(46,61) = rconst(46)*f(1)
9560 b(47,9) = rconst(47)*v(61)
9561 b(47,61) = rconst(47)*v(9)
9562 b(48,23) = rconst(48)*v(61)
9563 b(48,61) = rconst(48)*v(23)
9564 b(49,49) = rconst(49)
9565 b(50,49) = rconst(50)
9566 b(51,49) = rconst(51)*v(61)
9567 b(51,61) = rconst(51)*v(49)
9568 b(52,49) = rconst(52)*v(62)
9569 b(52,62) = rconst(52)*v(49)
9570 b(53,25) = rconst(53)
9571 b(54,21) = rconst(54)
9572 b(55,25) = rconst(55)*v(61)
9573 b(55,61) = rconst(55)*v(25)
9574 b(56,21) = rconst(56)*v(61)
9575 b(56,61) = rconst(56)*v(21)
9576 b(57,55) = rconst(57)*v(60)
9577 b(57,60) = rconst(57)*v(55)
9578 b(58,44) = rconst(58)*v(60)
9579 b(58,60) = rconst(58)*v(44)
9580 b(59,55) = rconst(59)*v(62)
9581 b(59,62) = rconst(59)*v(55)
9582 b(60,44) = rconst(60)*v(62)
9583 b(60,62) = rconst(60)*v(44)
9584 b(61,55) = rconst(61)*v(63)
9585 b(61,63) = rconst(61)*v(55)
9586 b(62,44) = rconst(62)*v(63)
9587 b(62,63) = rconst(62)*v(44)
9588 b(63,55) = rconst(63)
9589 b(64,44) = rconst(64)
9590 b(65,7) = rconst(65)*v(61)
9591 b(65,61) = rconst(65)*v(7)
9592 b(66,48) = rconst(66)
9593 b(67,48) = rconst(67)*v(61)
9594 b(67,61) = rconst(67)*v(48)
9595 b(68,48) = rconst(68)*v(62)
9596 b(68,62) = rconst(68)*v(48)
9597 b(69,52) = rconst(69)*v(56)
9598 b(69,56) = rconst(69)*v(52)
9599 b(70,10) = rconst(70)
9600 b(71,52) = rconst(71)*v(60)
9601 b(71,60) = rconst(71)*v(52)
9602 b(72,52) = rconst(72)*v(62)
9603 b(72,62) = rconst(72)*v(52)
9604 b(73,52) = rconst(73)*v(63)
9605 b(73,63) = rconst(73)*v(52)
9606 b(74,52) = rconst(74)
9607 b(75,30) = rconst(75)*v(61)
9608 b(75,61) = rconst(75)*v(30)
9609 b(76,41) = rconst(76)
9610 b(77,41) = rconst(77)*v(61)
9611 b(77,61) = rconst(77)*v(41)
9612 b(78,43) = rconst(78)
9613 b(79,43) = rconst(79)*v(61)
9614 b(79,61) = rconst(79)*v(43)
9615 b(80,43) = rconst(80)*v(62)
9616 b(80,62) = rconst(80)*v(43)
9617 b(81,22) = rconst(81)*v(58)
9618 b(81,58) = rconst(81)*v(22)
9619 b(82,22) = rconst(82)*v(61)
9620 b(82,61) = rconst(82)*v(22)
9621 b(83,37) = rconst(83)*v(58)
9622 b(83,58) = rconst(83)*v(37)
9623 b(84,42) = rconst(84)*v(58)
9624 b(84,58) = rconst(84)*v(42)
9625 b(85,37) = rconst(85)*v(61)
9626 b(85,61) = rconst(85)*v(37)
9627 b(86,42) = rconst(86)*v(61)
9628 b(86,61) = rconst(86)*v(42)
9629 b(87,37) = rconst(87)*v(62)
9630 b(87,62) = rconst(87)*v(37)
9631 b(88,42) = rconst(88)*v(62)
9632 b(88,62) = rconst(88)*v(42)
9633 b(89,12) = rconst(89)*v(61)
9634 b(89,61) = rconst(89)*v(12)
9635 b(90,15) = rconst(90)*v(61)
9636 b(90,61) = rconst(90)*v(15)
9637 b(91,18) = rconst(91)*v(60)
9638 b(91,60) = rconst(91)*v(18)
9639 b(92,26) = rconst(92)*v(61)
9640 b(92,61) = rconst(92)*v(26)
9641 b(93,26) = rconst(93)*v(62)
9642 b(93,62) = rconst(93)*v(26)
9643 b(94,16) = rconst(94)*v(56)
9644 b(94,56) = rconst(94)*v(16)
9645 b(95,32) = rconst(95)*v(61)
9646 b(95,61) = rconst(95)*v(32)
9647 b(96,32) = rconst(96)
9648 b(97,32) = rconst(97)*v(58)
9649 b(97,58) = rconst(97)*v(32)
9650 b(98,53) = rconst(98)
9651 b(99,53) = rconst(99)*v(61)
9652 b(99,61) = rconst(99)*v(53)
9653 b(100,57) = rconst(100)*v(61)
9654 b(100,61) = rconst(100)*v(57)
9655 b(101,57) = rconst(101)
9656 b(102,59) = rconst(102)*v(60)
9657 b(102,60) = rconst(102)*v(59)
9658 b(103,60) = rconst(103)*v(64)
9659 b(103,64) = rconst(103)*v(60)
9660 b(104,47) = rconst(104)*v(60)
9661 b(104,60) = rconst(104)*v(47)
9662 b(105,40) = rconst(105)*v(60)
9663 b(105,60) = rconst(105)*v(40)
9664 b(106,59) = rconst(106)*v(62)
9665 b(106,62) = rconst(106)*v(59)
9666 b(107,62) = rconst(107)*v(64)
9667 b(107,64) = rconst(107)*v(62)
9668 b(108,47) = rconst(108)*v(62)
9669 b(108,62) = rconst(108)*v(47)
9670 b(109,40) = rconst(109)*v(62)
9671 b(109,62) = rconst(109)*v(40)
9672 b(110,59) = rconst(110)*v(63)
9673 b(110,63) = rconst(110)*v(59)
9674 b(111,63) = rconst(111)*v(64)
9675 b(111,64) = rconst(111)*v(63)
9676 b(112,47) = rconst(112)*v(63)
9677 b(112,63) = rconst(112)*v(47)
9678 b(113,40) = rconst(113)*v(63)
9679 b(113,63) = rconst(113)*v(40)
9680 b(114,59) = rconst(114)
9681 b(115,64) = rconst(115)
9682 b(116,47) = rconst(116)
9683 b(117,40) = rconst(117)
9684 b(118,20) = rconst(118)*v(30)
9685 b(118,30) = rconst(118)*v(20)
9686 b(119,38) = rconst(119)*v(61)
9687 b(119,61) = rconst(119)*v(38)
9688 b(120,38) = rconst(120)*v(58)
9689 b(120,58) = rconst(120)*v(38)
9690 b(121,38) = rconst(121)*v(62)
9691 b(121,62) = rconst(121)*v(38)
9692 b(122,51) = rconst(122)
9693 b(123,51) = rconst(123)*v(61)
9694 b(123,61) = rconst(123)*v(51)
9695 b(124,51) = rconst(124)*v(58)
9696 b(124,58) = rconst(124)*v(51)
9697 b(125,51) = rconst(125)*v(62)
9698 b(125,62) = rconst(125)*v(51)
9699 b(126,35) = rconst(126)*v(60)
9700 b(126,60) = rconst(126)*v(35)
9701 b(127,29) = rconst(127)*v(60)
9702 b(127,60) = rconst(127)*v(29)
9703 b(128,36) = rconst(128)*v(60)
9704 b(128,60) = rconst(128)*v(36)
9705 b(129,35) = rconst(129)*v(63)
9706 b(129,63) = rconst(129)*v(35)
9707 b(130,29) = rconst(130)*v(63)
9708 b(130,63) = rconst(130)*v(29)
9709 b(131,36) = rconst(131)*v(63)
9710 b(131,63) = rconst(131)*v(36)
9711 b(132,35) = rconst(132)
9712 b(133,29) = rconst(133)
9713 b(134,36) = rconst(134)
9714 b(135,34) = rconst(135)*v(61)
9715 b(135,61) = rconst(135)*v(34)
9716 b(136,34) = rconst(136)*v(62)
9717 b(136,62) = rconst(136)*v(34)
9718 b(137,34) = rconst(137)*v(46)
9719 b(137,46) = rconst(137)*v(34)
9720 b(138,34) = rconst(138)*v(61)
9721 b(138,61) = rconst(138)*v(34)
9722 b(139,39) = rconst(139)*v(60)
9723 b(139,60) = rconst(139)*v(39)
9724 b(140,39) = rconst(140)*v(55)
9725 b(140,55) = rconst(140)*v(39)
9726 b(141,39) = rconst(141)*v(50)
9727 b(141,50) = rconst(141)*v(39)
9728 b(142,39) = rconst(142)*2*v(39)
9729 b(143,19) = rconst(143)*v(61)
9730 b(143,61) = rconst(143)*v(19)
9731 b(144,11) = rconst(144)*v(61)
9732 b(144,61) = rconst(144)*v(11)
9733 b(145,28) = rconst(145)*v(60)
9734 b(145,60) = rconst(145)*v(28)
9735 b(146,28) = rconst(146)*v(55)
9736 b(146,55) = rconst(146)*v(28)
9737 b(147,45) = rconst(147)*v(63)
9738 b(147,63) = rconst(147)*v(45)
9739 b(148,45) = rconst(148)*v(62)
9740 b(148,62) = rconst(148)*v(45)
9741 b(149,45) = rconst(149)*v(55)
9742 b(149,55) = rconst(149)*v(45)
9743 b(150,45) = rconst(150)*v(61)
9744 b(150,61) = rconst(150)*v(45)
9745 b(151,45) = rconst(151)*v(54)
9746 b(151,54) = rconst(151)*v(45)
9747 b(152,50) = rconst(152)
9748 b(153,50) = rconst(153)*v(56)
9749 b(153,56) = rconst(153)*v(50)
9750 b(154,50) = rconst(154)*v(58)
9751 b(154,58) = rconst(154)*v(50)
9752 b(155,50) = rconst(155)*v(63)
9753 b(155,63) = rconst(155)*v(50)
9754 b(156,50) = rconst(156)*v(55)
9755 b(156,55) = rconst(156)*v(50)
9756 b(157,50) = rconst(157)*v(61)
9757 b(157,61) = rconst(157)*v(50)
9758 b(158,50) = rconst(158)*f(4)
9759 b(159,27) = rconst(159)
9760 b(160,27) = rconst(160)*v(60)
9761 b(160,60) = rconst(160)*v(27)
9762 b(161,27) = rconst(161)*v(55)
9763 b(161,55) = rconst(161)*v(27)
9764 b(162,54) = rconst(162)
9765 b(163,54) = rconst(163)*v(56)
9766 b(163,56) = rconst(163)*v(54)
9767 b(164,54) = rconst(164)*v(60)
9768 b(164,60) = rconst(164)*v(54)
9769 b(165,54) = rconst(165)*v(63)
9770 b(165,63) = rconst(165)*v(54)
9771 b(166,49) = rconst(166)*v(54)
9772 b(166,54) = rconst(166)*v(49)
9774 ! construct the jacobian terms from b's
9780 jvs(6) = 0.52*b(81,22)
9781 jvs(7) = 0.22*b(83,37)
9782 jvs(8) = 0.39*b(120,38)
9783 jvs(9) = 0.46*b(124,51)
9784 jvs(10) = 0.52*b(81,58)+0.22*b(83,58)+0.39*b(120,58)+0.46 &
9787 jvs(12) = 0.09*b(83,37)
9788 jvs(13) = 0.16*b(84,42)
9789 jvs(14) = 0.4*b(73,52)
9790 jvs(15) = 0.09*b(83,58)+0.16*b(84,58)
9791 jvs(16) = 0.4*b(73,63)
9796 jvs(21) = b(151,54)+b(163,54)+b(164,54)+b(165,54)+b(166,54)
9802 jvs(27) = 0.15*b(142,39)
9803 jvs(28) = -b(10,6)-b(11,6)-b(12,6)
9811 jvs(36) = 0.2*b(64,44)
9816 jvs(41) = -b(144,11)
9817 jvs(42) = 0.27*b(143,19)
9818 jvs(43) = 0.27*b(143,61)-b(144,61)
9821 jvs(46) = -b(9,13)-b(30,13)
9824 jvs(49) = b(31,63)+b(32,63)+b(147,63)
9825 jvs(50) = -b(6,14)-b(42,14)-b(43,14)
9831 jvs(56) = 0.4*b(92,26)+b(93,26)
9833 jvs(58) = 0.4*b(92,61)
9835 jvs(60) = -b(5,17)-b(28,17)-b(36,17)
9839 jvs(64) = 0.8*b(89,12)
9840 jvs(65) = 0.45*b(90,15)
9843 jvs(68) = 0.8*b(89,61)+0.45*b(90,61)
9844 jvs(69) = -b(143,19)
9845 jvs(70) = 0.965*b(138,34)
9846 jvs(71) = 0.965*b(138,61)-b(143,61)
9847 jvs(72) = -b(118,20)
9848 jvs(73) = -b(118,30)
9849 jvs(74) = 1.06*b(83,37)+b(85,37)
9850 jvs(75) = 2.26*b(84,42)+2.23*b(86,42)
9851 jvs(76) = b(104,47)+b(108,47)+b(116,47)
9852 jvs(77) = 1.98*b(98,53)+0.42*b(99,53)
9853 jvs(78) = 1.98*b(101,57)
9854 jvs(79) = 1.06*b(83,58)+2.26*b(84,58)
9855 jvs(80) = 1.68*b(102,59)+1.98*b(106,59)+1.25*b(114,59)
9856 jvs(81) = 1.68*b(102,60)+b(104,60)
9857 jvs(82) = b(85,61)+2.23*b(86,61)+0.42*b(99,61)
9858 jvs(83) = 1.98*b(106,62)+b(108,62)
9859 jvs(84) = -b(54,21)-b(56,21)
9863 jvs(88) = -b(81,22)-b(82,22)
9867 jvs(92) = 0.03*b(83,37)
9868 jvs(93) = 0.04*b(84,42)
9869 jvs(94) = 0.34*b(63,55)
9870 jvs(95) = 0.03*b(83,58)+0.04*b(84,58)
9872 jvs(97) = -b(3,24)-b(26,24)
9875 jvs(100) = b(23,60)+b(164,60)
9876 jvs(101) = b(23,61)-b(26,61)
9878 jvs(103) = -b(53,25)-b(55,25)
9879 jvs(104) = b(149,45)
9880 jvs(105) = b(61,55)+b(149,55)
9881 jvs(106) = -b(55,61)
9883 jvs(108) = 0.12*b(89,12)
9884 jvs(109) = 0.05*b(90,15)
9885 jvs(110) = -b(92,26)-b(93,26)
9886 jvs(111) = 0.12*b(89,61)+0.05*b(90,61)-b(92,61)
9887 jvs(112) = -b(93,62)
9888 jvs(113) = -b(159,27)-b(160,27)-b(161,27)
9889 jvs(114) = b(158,50)
9890 jvs(115) = -b(161,55)
9891 jvs(116) = -b(160,60)
9892 jvs(117) = b(144,11)
9894 jvs(119) = -b(145,28)-b(146,28)
9896 jvs(121) = -b(146,55)
9897 jvs(122) = -b(145,60)
9898 jvs(123) = b(144,61)
9899 jvs(124) = -b(127,29)-b(130,29)-b(133,29)
9900 jvs(125) = b(121,38)
9901 jvs(126) = -b(127,60)
9902 jvs(127) = b(121,62)
9903 jvs(128) = -b(130,63)
9904 jvs(129) = 1.1*b(90,15)
9905 jvs(130) = -b(118,20)
9906 jvs(131) = 1.6*b(127,29)+2*b(130,29)+2*b(133,29)
9907 jvs(132) = -b(75,30)-b(118,30)
9908 jvs(133) = 0.18*b(126,35)
9913 jvs(138) = 1.86*b(125,51)
9918 jvs(143) = 0.18*b(126,60)+1.6*b(127,60)
9919 jvs(144) = -b(75,61)+1.1*b(90,61)
9920 jvs(145) = 1.86*b(125,62)
9921 jvs(146) = 2*b(130,63)
9922 jvs(147) = 0.24*b(81,22)
9923 jvs(148) = -b(44,31)
9924 jvs(149) = 2*b(95,32)+b(96,32)+0.69*b(97,32)
9925 jvs(150) = 0.59*b(128,36)
9926 jvs(151) = 0.31*b(83,37)
9927 jvs(152) = 0.07*b(120,38)
9928 jvs(153) = 0.3*b(84,42)
9929 jvs(154) = b(78,43)+b(80,43)
9931 jvs(156) = b(49,49)+b(50,49)+b(51,49)+b(52,49)+b(166,49)
9932 jvs(157) = 0.33*b(122,51)+0.16*b(124,51)+0.64*b(125,51)
9933 jvs(158) = b(166,54)
9934 jvs(159) = 0.24*b(81,58)+0.31*b(83,58)+0.3*b(84,58)+0.69 &
9935 *b(97,58)+0.07*b(120,58)+0.16*b(124,58)
9936 jvs(160) = 0.59*b(128,60)
9937 jvs(161) = -b(44,61)+b(51,61)+2*b(95,61)
9938 jvs(162) = b(52,62)+b(80,62)+0.64*b(125,62)
9939 jvs(163) = 0.95*b(91,18)
9940 jvs(164) = 0.3*b(92,26)
9941 jvs(165) = -b(95,32)-b(96,32)-b(97,32)
9942 jvs(166) = -b(97,58)
9943 jvs(167) = 0.95*b(91,60)
9944 jvs(168) = 0.3*b(92,61)-b(95,61)
9946 jvs(170) = 2*b(42,14)
9948 jvs(172) = -b(4,33)-b(27,33)
9949 jvs(173) = b(136,34)
9951 jvs(175) = b(148,45)
9954 jvs(178) = 0.07*b(125,51)
9955 jvs(179) = b(163,54)
9956 jvs(180) = b(24,56)+b(163,56)
9957 jvs(181) = b(24,61)-b(27,61)
9958 jvs(182) = 0.3*b(41,62)+b(52,62)+b(68,62)+b(80,62)+b(93,62)+0.07 &
9959 *b(125,62)+b(136,62)+b(148,62)
9960 jvs(183) = 0.3*b(41,63)
9961 jvs(184) = -b(135,34)-b(136,34)-b(137,34)-b(138,34)
9962 jvs(185) = -b(137,46)
9963 jvs(186) = -b(135,61)-b(138,61)
9964 jvs(187) = -b(136,62)
9965 jvs(188) = -b(126,35)-b(129,35)-b(132,35)
9966 jvs(189) = b(119,38)
9967 jvs(190) = -b(126,60)
9968 jvs(191) = b(119,61)
9969 jvs(192) = -b(129,63)
9970 jvs(193) = -b(128,36)-b(131,36)-b(134,36)
9971 jvs(194) = 0.5*b(123,51)
9972 jvs(195) = -b(128,60)
9973 jvs(196) = 0.5*b(123,61)
9974 jvs(197) = -b(131,63)
9975 jvs(198) = -b(83,37)-b(85,37)-b(87,37)
9976 jvs(199) = -b(83,58)
9977 jvs(200) = -b(85,61)
9978 jvs(201) = -b(87,62)
9979 jvs(202) = -b(119,38)-b(120,38)-b(121,38)
9980 jvs(203) = -b(120,58)
9981 jvs(204) = -b(119,61)
9982 jvs(205) = -b(121,62)
9983 jvs(206) = b(135,34)+b(136,34)
9984 jvs(207) = -b(139,39)-b(140,39)-b(141,39)-2*b(142,39)
9986 jvs(209) = -b(141,50)
9987 jvs(210) = -b(140,55)
9988 jvs(211) = -b(139,60)
9989 jvs(212) = b(135,61)
9990 jvs(213) = b(136,62)
9991 jvs(214) = 0.08*b(89,12)
9992 jvs(215) = 0.5*b(90,15)
9994 jvs(217) = 0.6*b(92,26)
9995 jvs(218) = b(95,32)+0.03*b(97,32)
9997 jvs(220) = 0.08*b(119,38)+0.2*b(120,38)
9998 jvs(221) = -b(105,40)-b(109,40)-b(113,40)-b(117,40)
10000 jvs(223) = b(79,43)
10001 jvs(224) = 0.2*b(123,51)+0.07*b(124,51)+0.93*b(125,51)
10002 jvs(225) = 0.4*b(98,53)
10003 jvs(226) = 0.4*b(101,57)
10004 jvs(227) = 0.03*b(97,58)+0.2*b(120,58)+0.07*b(124,58)
10005 jvs(228) = 0.34*b(102,59)+0.4*b(106,59)+0.24*b(114,59)
10006 jvs(229) = 0.34*b(102,60)-b(105,60)
10007 jvs(230) = b(79,61)+b(82,61)+b(85,61)+b(86,61)+0.08*b(89,61)+0.5 &
10008 *b(90,61)+0.6*b(92,61)+b(95,61)+0.08*b(119,61)+0.2 &
10010 jvs(231) = 0.4*b(106,62)-b(109,62)+0.93*b(125,62)
10011 jvs(232) = -b(113,63)
10012 jvs(233) = 0.63*b(128,36)+0.5*b(134,36)
10013 jvs(234) = -b(76,41)-b(77,41)
10014 jvs(235) = 0.07*b(84,42)+0.23*b(86,42)
10015 jvs(236) = 0.03*b(122,51)+0.09*b(124,51)
10016 jvs(237) = 0.74*b(98,53)
10017 jvs(238) = 0.74*b(101,57)
10018 jvs(239) = 0.07*b(84,58)+0.09*b(124,58)
10019 jvs(240) = 0.62*b(102,59)+0.74*b(106,59)+0.57*b(114,59)
10020 jvs(241) = 0.62*b(102,60)+0.63*b(128,60)
10021 jvs(242) = -b(77,61)+0.23*b(86,61)
10022 jvs(243) = 0.74*b(106,62)
10024 jvs(245) = 0.15*b(115,64)
10025 jvs(246) = -b(84,42)-b(86,42)-b(88,42)
10026 jvs(247) = -b(84,58)
10027 jvs(248) = -b(86,61)
10028 jvs(249) = -b(88,62)
10029 jvs(250) = 0.8*b(90,15)
10030 jvs(251) = 0.2*b(97,32)
10031 jvs(252) = 0.34*b(128,36)
10032 jvs(253) = 0.04*b(83,37)
10033 jvs(254) = 0.07*b(84,42)
10034 jvs(255) = -b(78,43)-b(79,43)-b(80,43)
10035 jvs(256) = 0.85*b(124,51)
10036 jvs(257) = 0.19*b(99,53)
10037 jvs(258) = 0.04*b(83,58)+0.07*b(84,58)+0.2*b(97,58)+0.85 &
10039 jvs(259) = 0.34*b(128,60)
10040 jvs(260) = -b(79,61)+0.8*b(90,61)+0.19*b(99,61)
10041 jvs(261) = -b(80,62)
10043 jvs(263) = 0.15*b(115,64)
10045 jvs(265) = 0.5*b(56,21)
10046 jvs(266) = 0.06*b(83,37)
10047 jvs(267) = 0.05*b(84,42)
10048 jvs(268) = -b(58,44)-b(60,44)-b(62,44)-b(64,44)
10049 jvs(269) = 0.1*b(98,53)
10050 jvs(270) = 0.1*b(101,57)
10051 jvs(271) = 0.06*b(83,58)+0.05*b(84,58)
10052 jvs(272) = 0.08*b(102,59)+0.1*b(106,59)+0.06*b(114,59)
10053 jvs(273) = -b(58,60)+0.08*b(102,60)
10054 jvs(274) = b(47,61)+0.5*b(56,61)
10055 jvs(275) = -b(60,62)+0.1*b(106,62)
10056 jvs(276) = -b(62,63)
10057 jvs(277) = 0.73*b(143,19)
10059 jvs(279) = -b(147,45)-b(148,45)-b(149,45)-b(150,45)-b(151,45)
10061 jvs(281) = -b(151,54)
10062 jvs(282) = -b(149,55)
10063 jvs(283) = 0.73*b(143,61)-b(150,61)
10064 jvs(284) = -b(148,62)
10065 jvs(285) = -b(147,63)
10066 jvs(286) = b(10,6)+b(11,6)
10067 jvs(287) = -b(137,34)
10068 jvs(288) = -b(13,46)-b(14,46)-b(15,46)-b(16,46)-b(17,46) &
10070 jvs(289) = b(1,56)-b(15,56)-b(16,56)
10071 jvs(290) = b(7,58)-b(14,58)
10072 jvs(291) = -b(17,60)
10074 jvs(293) = 0.89*b(2,62)
10075 jvs(294) = b(87,37)
10076 jvs(295) = b(88,42)
10077 jvs(296) = -b(104,47)-b(108,47)-b(112,47)-b(116,47)
10078 jvs(297) = b(100,57)
10080 jvs(299) = -b(104,60)
10081 jvs(300) = b(100,61)
10082 jvs(301) = b(87,62)+b(88,62)-b(108,62)
10083 jvs(302) = -b(112,63)
10085 jvs(304) = b(54,21)+0.5*b(56,21)
10086 jvs(305) = 0.22*b(82,22)
10087 jvs(306) = 0.8*b(127,29)+b(133,29)
10088 jvs(307) = 0.03*b(97,32)
10089 jvs(308) = 0.55*b(128,36)+0.5*b(134,36)
10090 jvs(309) = 0.47*b(83,37)+b(85,37)
10091 jvs(310) = 0.15*b(120,38)
10092 jvs(311) = 1.03*b(84,42)+1.77*b(86,42)
10093 jvs(312) = b(58,44)+b(60,44)+0.8*b(64,44)
10094 jvs(313) = 0.5*b(104,47)+0.5*b(108,47)+0.5*b(116,47)
10095 jvs(314) = -b(66,48)-b(67,48)-b(68,48)
10096 jvs(315) = 0.07*b(122,51)+0.02*b(124,51)+0.28*b(125,51)
10097 jvs(316) = 0.3*b(98,53)+0.04*b(99,53)
10098 jvs(317) = 0.3*b(101,57)
10099 jvs(318) = 0.47*b(83,58)+1.03*b(84,58)+0.03*b(97,58)+0.15 &
10100 *b(120,58)+0.02*b(124,58)
10101 jvs(319) = 0.25*b(102,59)+0.3*b(106,59)+0.21*b(114,59)
10102 jvs(320) = b(58,60)+0.25*b(102,60)+0.5*b(104,60)+0.8*b(127,60) &
10104 jvs(321) = 0.5*b(56,61)+b(65,61)-b(67,61)+0.22*b(82,61)+b(85,61) &
10105 +1.77*b(86,61)+0.04*b(99,61)
10106 jvs(322) = b(60,62)-b(68,62)+0.3*b(106,62)+0.5*b(108,62)+0.28 &
10109 jvs(324) = b(81,22)+1.56*b(82,22)
10110 jvs(325) = b(48,23)
10111 jvs(326) = b(53,25)+0.3*b(55,25)
10112 jvs(327) = b(161,27)
10113 jvs(328) = b(145,28)+2*b(146,28)
10114 jvs(329) = b(95,32)+0.7*b(97,32)
10116 jvs(331) = 0.63*b(126,35)
10117 jvs(332) = 0.25*b(128,36)
10118 jvs(333) = 0.57*b(83,37)+b(85,37)
10119 jvs(334) = 0.6*b(120,38)
10120 jvs(335) = b(139,39)+2*b(140,39)+b(141,39)
10124 jvs(339) = 0.5*b(104,47)+0.5*b(108,47)+0.5*b(116,47)
10125 jvs(340) = -b(49,49)-b(50,49)-b(51,49)-b(52,49)-b(166,49)
10126 jvs(341) = b(141,50)+b(156,50)
10127 jvs(342) = 0.2*b(122,51)+0.15*b(124,51)+0.28*b(125,51)
10128 jvs(343) = -b(166,54)
10129 jvs(344) = b(57,55)+b(59,55)+0.66*b(63,55)+2*b(140,55)+2 &
10130 *b(146,55)+b(156,55)+b(161,55)
10133 jvs(347) = b(81,58)+0.57*b(83,58)+0.7*b(97,58)+0.6*b(120,58) &
10135 jvs(348) = b(57,60)+b(103,60)+0.5*b(104,60)+0.63*b(126,60)+0.25 &
10136 *b(128,60)+b(139,60)+b(145,60)
10137 jvs(349) = b(48,61)-b(51,61)+0.3*b(55,61)+1.56*b(82,61)+b(85,61) &
10139 jvs(350) = -b(52,62)+b(59,62)+b(107,62)+0.5*b(108,62)+0.28 &
10142 jvs(352) = b(103,64)+b(107,64)+0.7*b(115,64)
10143 jvs(353) = b(159,27)
10144 jvs(354) = b(145,28)+b(146,28)
10145 jvs(355) = b(137,34)+0.035*b(138,34)
10146 jvs(356) = b(139,39)+b(140,39)+1.85*b(142,39)
10147 jvs(357) = b(147,45)+b(148,45)+b(149,45)+b(150,45)+b(151,45)
10148 jvs(358) = b(137,46)
10149 jvs(359) = -b(152,50)-b(153,50)-b(154,50)-b(155,50)-b(156,50) &
10150 -b(157,50)-b(158,50)
10151 jvs(360) = b(151,54)
10152 jvs(361) = b(140,55)+b(146,55)+b(149,55)-b(156,55)
10153 jvs(362) = -b(153,56)
10154 jvs(363) = -b(154,58)
10155 jvs(364) = b(139,60)+b(145,60)
10156 jvs(365) = 0.035*b(138,61)+b(150,61)-b(157,61)
10157 jvs(366) = b(148,62)
10158 jvs(367) = b(147,63)-b(155,63)
10159 jvs(368) = 0.2*b(127,29)
10160 jvs(369) = 0.91*b(126,35)+b(132,35)
10161 jvs(370) = 0.65*b(120,38)
10162 jvs(371) = -b(122,51)-b(123,51)-b(124,51)-b(125,51)
10163 jvs(372) = 0.65*b(120,58)-b(124,58)
10164 jvs(373) = 0.91*b(126,60)+0.2*b(127,60)
10165 jvs(374) = -b(123,61)
10166 jvs(375) = -b(125,62)
10168 jvs(377) = b(70,10)
10169 jvs(378) = b(95,32)+b(96,32)+0.62*b(97,32)
10170 jvs(379) = 0.13*b(83,37)
10171 jvs(380) = 0.2*b(120,38)
10172 jvs(381) = b(76,41)
10173 jvs(382) = 0.19*b(84,42)
10174 jvs(383) = b(78,43)+b(79,43)+b(80,43)
10175 jvs(384) = b(67,48)+b(68,48)
10176 jvs(385) = 0.97*b(122,51)+0.5*b(123,51)+0.11*b(124,51)+0.07 &
10178 jvs(386) = -b(69,52)-b(71,52)-b(72,52)-b(73,52)-b(74,52)
10180 jvs(388) = -b(69,56)
10182 jvs(390) = 0.13*b(83,58)+0.19*b(84,58)+0.62*b(97,58)+0.2 &
10183 *b(120,58)+0.11*b(124,58)
10185 jvs(392) = -b(71,60)+b(103,60)
10186 jvs(393) = b(67,61)+b(79,61)+b(95,61)+0.5*b(123,61)
10187 jvs(394) = b(68,62)-b(72,62)+b(80,62)+b(107,62)+0.07*b(125,62)
10188 jvs(395) = -b(73,63)
10189 jvs(396) = b(103,64)+b(107,64)+0.7*b(115,64)
10190 jvs(397) = b(129,35)
10191 jvs(398) = b(131,36)
10194 jvs(401) = -b(98,53)-b(99,53)
10196 jvs(403) = b(110,59)
10198 jvs(405) = -b(99,61)
10200 jvs(407) = b(110,63)+b(111,63)+b(129,63)+b(131,63)
10201 jvs(408) = b(111,64)
10202 jvs(409) = b(160,27)+b(161,27)
10203 jvs(410) = b(141,39)
10204 jvs(411) = -b(151,45)
10206 jvs(413) = -b(166,49)
10207 jvs(414) = b(141,50)+b(153,50)+b(154,50)+b(155,50)+b(156,50)
10209 jvs(416) = -b(151,54)-b(162,54)-b(163,54)-b(164,54)-b(165,54) &
10211 jvs(417) = b(156,55)+b(161,55)
10212 jvs(418) = b(153,56)-b(163,56)
10214 jvs(420) = b(154,58)
10215 jvs(421) = b(160,60)-b(164,60)
10218 jvs(424) = b(155,63)-b(165,63)
10220 jvs(426) = 0.73*b(143,19)
10221 jvs(427) = 0.7*b(55,25)
10222 jvs(428) = -b(161,27)
10223 jvs(429) = -b(146,28)
10224 jvs(430) = b(137,34)+0.035*b(138,34)
10225 jvs(431) = 0.07*b(83,37)
10226 jvs(432) = -b(140,39)
10227 jvs(433) = b(76,41)
10228 jvs(434) = 0.1*b(84,42)
10229 jvs(435) = -b(149,45)
10230 jvs(436) = b(137,46)
10231 jvs(437) = b(66,48)
10232 jvs(438) = b(152,50)-b(156,50)
10233 jvs(439) = 0.7*b(122,51)+0.05*b(124,51)
10234 jvs(440) = b(71,52)+b(72,52)+b(74,52)
10236 jvs(442) = b(162,54)
10237 jvs(443) = -b(57,55)-b(59,55)-b(61,55)-b(63,55)-b(140,55) &
10238 -b(146,55)-b(149,55)-b(156,55)-b(161,55)
10241 jvs(446) = 0.07*b(83,58)+0.1*b(84,58)+0.05*b(124,58)
10243 jvs(448) = -b(57,60)+b(71,60)
10244 jvs(449) = b(46,61)+0.7*b(55,61)+0.035*b(138,61)+0.73*b(143,61)
10245 jvs(450) = -b(59,62)+b(72,62)
10246 jvs(451) = -b(61,63)
10248 jvs(453) = b(70,10)
10249 jvs(454) = b(6,14)+b(43,14)
10250 jvs(455) = -b(94,16)
10251 jvs(456) = b(5,17)+b(28,17)+b(36,17)
10252 jvs(457) = 0.95*b(91,18)
10253 jvs(458) = b(26,24)
10255 jvs(460) = b(160,27)
10256 jvs(461) = b(145,28)
10257 jvs(462) = 1.2*b(127,29)
10260 jvs(465) = 0.91*b(126,35)
10261 jvs(466) = b(128,36)
10263 jvs(468) = b(139,39)
10264 jvs(469) = b(105,40)+b(109,40)
10267 jvs(472) = b(58,44)+b(60,44)
10269 jvs(474) = -b(15,46)-b(16,46)+b(17,46)
10270 jvs(475) = 1.5*b(104,47)+1.5*b(108,47)+0.5*b(116,47)
10273 jvs(478) = -b(153,50)
10275 jvs(480) = -b(69,52)+b(71,52)+b(72,52)
10277 jvs(482) = -b(163,54)
10278 jvs(483) = b(57,55)+b(59,55)
10279 jvs(484) = -b(1,56)-b(15,56)-b(16,56)-b(19,56)-b(24,56)-b(34,56) &
10280 -b(35,56)-b(39,56)-b(69,56)-b(94,56)-b(153,56) &
10282 jvs(485) = b(101,57)
10283 jvs(486) = b(18,58)-b(19,58)
10284 jvs(487) = 0.84*b(102,59)+b(106,59)
10285 jvs(488) = b(17,60)+b(18,60)+b(33,60)+2*b(37,60)+b(57,60) &
10286 +b(58,60)+b(71,60)+0.95*b(91,60)+0.84*b(102,60) &
10287 +b(103,60)+1.5*b(104,60)+b(105,60)+0.91*b(126,60)+1.2 &
10288 *b(127,60)+b(128,60)+b(139,60)+b(145,60)+b(160,60)
10289 jvs(489) = -b(24,61)+b(25,61)+b(26,61)+b(28,61)
10290 jvs(490) = 0.89*b(2,62)+b(25,62)+2*b(37,62)-b(39,62)+2*b(40,62) &
10291 +0.7*b(41,62)+b(59,62)+b(60,62)+b(72,62)+b(106,62) &
10292 +b(107,62)+1.5*b(108,62)+b(109,62)
10293 jvs(491) = b(33,63)-b(34,63)-b(35,63)+0.7*b(41,63)
10294 jvs(492) = b(103,64)+b(107,64)
10295 jvs(493) = b(94,16)
10296 jvs(494) = 0.05*b(91,18)
10298 jvs(496) = 0.8*b(127,29)+b(130,29)+b(133,29)
10299 jvs(497) = 0.09*b(126,35)
10301 jvs(499) = 0.5*b(104,47)+0.5*b(108,47)+b(112,47)+0.5*b(116,47)
10302 jvs(500) = 0.93*b(125,51)
10303 jvs(501) = b(94,56)
10304 jvs(502) = -b(100,57)-b(101,57)
10306 jvs(504) = 0.16*b(102,59)
10307 jvs(505) = 0.05*b(91,60)+0.16*b(102,60)+0.5*b(104,60)+0.09 &
10308 *b(126,60)+0.8*b(127,60)
10309 jvs(506) = -b(100,61)
10310 jvs(507) = 0.5*b(108,62)+0.93*b(125,62)
10311 jvs(508) = b(112,63)+b(130,63)
10313 jvs(510) = -b(81,22)
10314 jvs(511) = -b(97,32)
10315 jvs(512) = -b(83,37)
10316 jvs(513) = -b(120,38)
10317 jvs(514) = -b(84,42)
10318 jvs(515) = b(13,46)-b(14,46)
10319 jvs(516) = -b(154,50)
10320 jvs(517) = -b(124,51)
10321 jvs(518) = 0.4*b(73,52)
10325 jvs(522) = -b(19,56)
10327 jvs(524) = -b(7,58)-b(8,58)-b(14,58)-b(18,58)-b(19,58)-b(20,58) &
10328 -b(21,58)-b(81,58)-b(83,58)-b(84,58)-b(97,58) &
10329 -b(120,58)-b(124,58)-b(154,58)
10331 jvs(526) = -b(18,60)
10332 jvs(527) = -b(20,61)
10334 jvs(529) = -b(21,63)+0.4*b(73,63)
10336 jvs(531) = b(75,30)
10338 jvs(533) = 0.03*b(83,37)
10340 jvs(535) = 0.09*b(84,42)
10343 jvs(538) = 0.77*b(99,53)
10345 jvs(540) = 0.03*b(83,58)+0.09*b(84,58)
10346 jvs(541) = -b(102,59)-b(106,59)-b(110,59)-b(114,59)
10347 jvs(542) = -b(102,60)
10348 jvs(543) = b(75,61)+0.77*b(99,61)
10349 jvs(544) = -b(106,62)
10350 jvs(545) = -b(110,63)
10352 jvs(547) = -b(91,18)
10354 jvs(549) = -b(160,27)
10355 jvs(550) = -b(145,28)
10356 jvs(551) = -b(127,29)
10358 jvs(553) = -b(126,35)
10359 jvs(554) = -b(128,36)
10361 jvs(556) = -b(139,39)
10362 jvs(557) = -b(105,40)
10365 jvs(560) = -b(58,44)
10366 jvs(561) = b(15,46)-b(17,46)
10367 jvs(562) = -b(104,47)
10368 jvs(563) = b(153,50)
10370 jvs(565) = -b(71,52)
10372 jvs(567) = -b(164,54)
10373 jvs(568) = -b(57,55)
10374 jvs(569) = b(1,56)+b(15,56)+b(38,56)+b(153,56)
10376 jvs(571) = -b(18,58)
10377 jvs(572) = -b(102,59)
10378 jvs(573) = -b(17,60)-b(18,60)-b(23,60)-b(33,60)-b(37,60) &
10379 -b(57,60)-b(58,60)-b(71,60)-b(91,60)-b(102,60) &
10380 -b(103,60)-b(104,60)-b(105,60)-b(126,60)-b(127,60) &
10381 -b(128,60)-b(139,60)-b(145,60)-b(160,60)-b(164,60)
10382 jvs(574) = -b(23,61)
10383 jvs(575) = 0.11*b(2,62)-b(37,62)+b(38,62)
10384 jvs(576) = -b(33,63)
10385 jvs(577) = -b(103,64)
10386 jvs(578) = 2*b(12,6)
10387 jvs(579) = -b(65,7)
10388 jvs(580) = -b(45,8)
10389 jvs(581) = -b(47,9)
10390 jvs(582) = -b(144,11)
10391 jvs(583) = -b(89,12)
10392 jvs(584) = 2*b(9,13)-b(30,13)
10393 jvs(585) = -b(90,15)
10394 jvs(586) = -b(28,17)
10395 jvs(587) = -b(143,19)
10396 jvs(588) = b(54,21)-0.5*b(56,21)
10397 jvs(589) = 0.12*b(81,22)-b(82,22)
10398 jvs(590) = -b(48,23)
10399 jvs(591) = b(3,24)-b(26,24)
10400 jvs(592) = b(53,25)-0.7*b(55,25)
10401 jvs(593) = -b(92,26)
10402 jvs(594) = -b(75,30)
10403 jvs(595) = -b(44,31)
10404 jvs(596) = -b(95,32)+0.08*b(97,32)
10405 jvs(597) = b(4,33)-b(27,33)
10406 jvs(598) = -b(135,34)-b(138,34)
10409 jvs(601) = 0.33*b(83,37)-b(85,37)
10410 jvs(602) = -b(119,38)+0.27*b(120,38)
10411 jvs(603) = -b(77,41)
10412 jvs(604) = 0.6*b(84,42)-b(86,42)
10413 jvs(605) = -b(79,43)
10415 jvs(607) = -b(150,45)
10418 jvs(610) = -b(67,48)
10419 jvs(611) = -b(51,49)
10420 jvs(612) = b(155,50)-b(157,50)
10421 jvs(613) = -b(123,51)+0.27*b(124,51)
10422 jvs(614) = b(98,53)-0.77*b(99,53)
10425 jvs(617) = -b(24,56)
10426 jvs(618) = -b(100,57)
10427 jvs(619) = -b(20,58)+b(21,58)+0.12*b(81,58)+0.33*b(83,58)+0.6 &
10428 *b(84,58)+0.08*b(97,58)+0.27*b(120,58)+0.27*b(124,58)
10430 jvs(621) = -b(23,60)+b(33,60)
10431 jvs(622) = -b(20,61)-b(22,61)-b(23,61)-b(24,61)-b(25,61) &
10432 -b(26,61)-b(27,61)-b(28,61)-b(29,61)-b(30,61)-b(44,61) &
10433 -b(45,61)-b(46,61)-b(47,61)-b(48,61)-b(51,61)-0.7 &
10434 *b(55,61)-0.5*b(56,61)-b(65,61)-b(67,61)-b(75,61) &
10435 -b(77,61)-b(79,61)-b(82,61)-b(85,61)-b(86,61)-b(89,61) &
10436 -b(90,61)-b(92,61)-b(95,61)-0.77*b(99,61)-b(100,61) &
10437 -b(119,61)-b(123,61)-b(135,61)-b(138,61)-b(143,61) &
10438 -b(144,61)-b(150,61)-b(157,61)
10439 jvs(623) = -b(25,62)+0.7*b(41,62)
10440 jvs(624) = b(21,63)-b(29,63)+b(33,63)+0.7*b(41,63)+b(155,63)
10442 jvs(626) = b(6,14)+b(43,14)
10443 jvs(627) = -b(93,26)
10444 jvs(628) = b(27,33)
10445 jvs(629) = -b(136,34)
10446 jvs(630) = -b(87,37)
10447 jvs(631) = -b(121,38)
10448 jvs(632) = -b(109,40)
10449 jvs(633) = -b(88,42)
10450 jvs(634) = -b(80,43)
10451 jvs(635) = -b(60,44)
10452 jvs(636) = -b(148,45)
10453 jvs(637) = b(16,46)
10454 jvs(638) = -b(108,47)
10455 jvs(639) = -b(68,48)
10456 jvs(640) = -b(52,49)
10458 jvs(642) = -b(125,51)
10459 jvs(643) = -b(72,52)
10462 jvs(646) = -b(59,55)
10463 jvs(647) = b(16,56)+b(19,56)-b(38,56)-b(39,56)
10465 jvs(649) = b(19,58)
10466 jvs(650) = -b(106,59)
10467 jvs(651) = -b(37,60)
10468 jvs(652) = -b(25,61)+b(27,61)
10469 jvs(653) = -b(2,62)-b(25,62)-b(37,62)-b(38,62)-b(39,62)-2 &
10470 *b(40,62)-b(41,62)-b(52,62)-b(59,62)-b(60,62)-b(68,62) &
10471 -b(72,62)-b(80,62)-b(87,62)-b(88,62)-b(93,62) &
10472 -b(106,62)-b(107,62)-b(108,62)-b(109,62)-b(121,62) &
10473 -b(125,62)-b(136,62)-b(148,62)
10474 jvs(654) = -b(41,63)
10475 jvs(655) = -b(107,64)
10478 jvs(658) = 0.2*b(89,12)
10479 jvs(659) = b(30,13)
10480 jvs(660) = 0.55*b(90,15)
10481 jvs(661) = b(5,17)+b(36,17)
10482 jvs(662) = 0.95*b(91,18)
10483 jvs(663) = 0.27*b(143,19)
10484 jvs(664) = b(54,21)
10485 jvs(665) = 0.22*b(81,22)+b(82,22)
10486 jvs(666) = b(48,23)
10487 jvs(667) = b(53,25)
10488 jvs(668) = 0.6*b(92,26)
10489 jvs(669) = b(161,27)
10490 jvs(670) = b(146,28)
10491 jvs(671) = 0.8*b(127,29)-b(130,29)
10492 jvs(672) = b(44,31)
10493 jvs(673) = 2*b(95,32)+b(96,32)+0.76*b(97,32)
10494 jvs(674) = 0.965*b(138,34)
10495 jvs(675) = 0.91*b(126,35)-b(129,35)
10496 jvs(676) = b(128,36)-b(131,36)
10497 jvs(677) = 0.26*b(83,37)+b(85,37)
10498 jvs(678) = 0.07*b(120,38)
10499 jvs(679) = b(140,39)
10500 jvs(680) = -b(113,40)
10501 jvs(681) = 0.22*b(84,42)+b(86,42)
10502 jvs(682) = b(78,43)
10503 jvs(683) = b(58,44)+b(60,44)-b(62,44)+0.6*b(64,44)
10504 jvs(684) = -b(147,45)
10506 jvs(686) = 0.5*b(104,47)+0.5*b(108,47)-b(112,47)
10507 jvs(687) = b(66,48)
10508 jvs(688) = 2*b(49,49)+b(51,49)+b(52,49)+b(166,49)
10509 jvs(689) = -b(155,50)+b(156,50)
10510 jvs(690) = 0.33*b(122,51)+0.1*b(124,51)+0.93*b(125,51)
10511 jvs(691) = -b(73,52)
10512 jvs(692) = 0.9*b(98,53)
10513 jvs(693) = -b(165,54)+b(166,54)
10514 jvs(694) = b(57,55)+b(59,55)-b(61,55)+0.32*b(63,55)+b(140,55) &
10515 +b(146,55)+b(156,55)+b(161,55)
10516 jvs(695) = -b(34,56)-b(35,56)
10517 jvs(696) = 0.9*b(101,57)
10518 jvs(697) = b(20,58)-b(21,58)+0.22*b(81,58)+0.26*b(83,58)+0.22 &
10519 *b(84,58)+0.76*b(97,58)+0.07*b(120,58)+0.1*b(124,58)
10520 jvs(698) = 0.76*b(102,59)+0.9*b(106,59)-b(110,59)+0.54*b(114,59)
10521 jvs(699) = -b(33,60)+b(57,60)+b(58,60)+0.95*b(91,60)+0.76 &
10522 *b(102,60)+0.5*b(104,60)+0.91*b(126,60)+0.8*b(127,60) &
10524 jvs(700) = b(20,61)+b(22,61)+b(25,61)-b(29,61)+b(30,61)+b(44,61) &
10525 +b(45,61)+b(48,61)+b(51,61)+b(65,61)+b(82,61)+b(85,61) &
10526 +b(86,61)+0.2*b(89,61)+0.55*b(90,61)+0.6*b(92,61)+2 &
10527 *b(95,61)+0.965*b(138,61)+0.27*b(143,61)
10528 jvs(701) = b(25,62)-b(41,62)+b(52,62)+b(59,62)+b(60,62)+0.9 &
10529 *b(106,62)+0.5*b(108,62)+0.93*b(125,62)
10530 jvs(702) = -b(21,63)-b(29,63)-2*b(31,63)-2*b(32,63)-b(33,63) &
10531 -b(34,63)-b(35,63)-b(41,63)-b(61,63)-b(62,63)-b(73,63) &
10532 -b(110,63)-b(111,63)-b(112,63)-b(113,63)-b(129,63) &
10533 -b(130,63)-b(131,63)-b(147,63)-b(155,63)-b(165,63)
10534 jvs(703) = -b(111,64)
10535 jvs(704) = b(77,41)
10536 jvs(705) = 0.11*b(84,42)
10540 jvs(709) = 0.11*b(84,58)
10542 jvs(711) = -b(103,60)
10543 jvs(712) = b(77,61)
10544 jvs(713) = -b(107,62)
10545 jvs(714) = -b(111,63)
10546 jvs(715) = -b(103,64)-b(107,64)-b(111,64)-b(115,64)
10548 end subroutine cbmz_v02r06_jacob
10551 !-----------------------------------------------------------------------------
10552 subroutine cbmz_v02r06_decomp( n, v, ier, &
10553 lu_crow_v, lu_diag_v, lu_icol_v )
10555 ! computes l-u-decomposition of sparse jacobian
10556 ! for mechanism-version-regime = cbmz_v02r06
10558 use module_data_cbmz
10562 ! n = number of variable species [input]
10564 ! ier = status flag [output]
10565 ! 0 = success other = failure [output]
10568 ! v = non-zero elements of the sparse jacobian [input]
10569 real v(lu_nonzero_v_r06_kpp)
10571 integer lu_crow_v(nvar_r06_kpp + 1)
10572 integer lu_diag_v(nvar_r06_kpp + 1)
10573 integer lu_icol_v(lu_nonzero_v_r06_kpp)
10576 integer k, kk, j, jj
10577 real a, w(nvar_r06_kpp + 1)
10581 if ( v( lu_diag_v(k) ) .eq. 0. ) then
10585 do kk = lu_crow_v(k), lu_crow_v(k+1)-1
10586 w( lu_icol_v(kk) ) = v(kk)
10588 do kk = lu_crow_v(k), lu_diag_v(k)-1
10590 a = -w(j) / v( lu_diag_v(j) )
10592 do jj = lu_diag_v(j)+1, lu_crow_v(j+1)-1
10593 w( lu_icol_v(jj) ) = w( lu_icol_v(jj) ) + a*v(jj)
10596 do kk = lu_crow_v(k), lu_crow_v(k+1)-1
10597 v(kk) = w( lu_icol_v(kk) )
10601 end subroutine cbmz_v02r06_decomp
10604 !-----------------------------------------------------------------------------
10605 subroutine cbmz_v02r06_solve( jvs, x )
10607 ! does back-solve for mechanism-version-regime = cbmz_v02r06
10612 ! jvs = the non-zero elements of the l-u-decomposition
10613 ! of the augmented jacobian [input]
10615 ! x = the right-hand side of the linear equation set being solved [on input]
10616 ! x = concentrations of variable species [on output]
10620 x(18) = x(18)-jvs(64)*x(12)-jvs(65)*x(15)
10621 x(26) = x(26)-jvs(108)*x(12)-jvs(109)*x(15)
10622 x(28) = x(28)-jvs(117)*x(11)-jvs(118)*x(19)
10623 x(30) = x(30)-jvs(129)*x(15)-jvs(130)*x(20)-jvs(131)*x(29)
10624 x(31) = x(31)-jvs(147)*x(22)
10625 x(32) = x(32)-jvs(163)*x(18)-jvs(164)*x(26)
10626 x(33) = x(33)-jvs(170)*x(14)-jvs(171)*x(26)
10627 x(39) = x(39)-jvs(206)*x(34)
10628 x(40) = x(40)-jvs(214)*x(12)-jvs(215)*x(15)-jvs(216)*x(22) &
10629 -jvs(217)*x(26)-jvs(218)*x(32)-jvs(219)*x(37)-jvs(220) &
10631 x(41) = x(41)-jvs(233)*x(36)
10632 x(43) = x(43)-jvs(250)*x(15)-jvs(251)*x(32)-jvs(252)*x(36) &
10633 -jvs(253)*x(37)-jvs(254)*x(42)
10634 x(44) = x(44)-jvs(264)*x(9)-jvs(265)*x(21)-jvs(266)*x(37) &
10636 x(45) = x(45)-jvs(277)*x(19)-jvs(278)*x(34)
10637 x(46) = x(46)-jvs(286)*x(6)-jvs(287)*x(34)
10638 x(47) = x(47)-jvs(294)*x(37)-jvs(295)*x(42)
10639 x(48) = x(48)-jvs(303)*x(7)-jvs(304)*x(21)-jvs(305)*x(22) &
10640 -jvs(306)*x(29)-jvs(307)*x(32)-jvs(308)*x(36)-jvs(309) &
10641 *x(37)-jvs(310)*x(38)-jvs(311)*x(42)-jvs(312)*x(44) &
10643 x(49) = x(49)-jvs(324)*x(22)-jvs(325)*x(23)-jvs(326)*x(25) &
10644 -jvs(327)*x(27)-jvs(328)*x(28)-jvs(329)*x(32)-jvs(330) &
10645 *x(34)-jvs(331)*x(35)-jvs(332)*x(36)-jvs(333)*x(37) &
10646 -jvs(334)*x(38)-jvs(335)*x(39)-jvs(336)*x(42)-jvs(337) &
10647 *x(45)-jvs(338)*x(46)-jvs(339)*x(47)
10648 x(50) = x(50)-jvs(353)*x(27)-jvs(354)*x(28)-jvs(355)*x(34) &
10649 -jvs(356)*x(39)-jvs(357)*x(45)-jvs(358)*x(46)
10650 x(51) = x(51)-jvs(368)*x(29)-jvs(369)*x(35)-jvs(370)*x(38)
10651 x(52) = x(52)-jvs(377)*x(10)-jvs(378)*x(32)-jvs(379)*x(37) &
10652 -jvs(380)*x(38)-jvs(381)*x(41)-jvs(382)*x(42)-jvs(383) &
10653 *x(43)-jvs(384)*x(48)-jvs(385)*x(51)
10654 x(53) = x(53)-jvs(397)*x(35)-jvs(398)*x(36)-jvs(399)*x(38) &
10656 x(54) = x(54)-jvs(409)*x(27)-jvs(410)*x(39)-jvs(411)*x(45) &
10657 -jvs(412)*x(46)-jvs(413)*x(49)-jvs(414)*x(50)-jvs(415) &
10659 x(55) = x(55)-jvs(426)*x(19)-jvs(427)*x(25)-jvs(428)*x(27) &
10660 -jvs(429)*x(28)-jvs(430)*x(34)-jvs(431)*x(37)-jvs(432) &
10661 *x(39)-jvs(433)*x(41)-jvs(434)*x(42)-jvs(435)*x(45) &
10662 -jvs(436)*x(46)-jvs(437)*x(48)-jvs(438)*x(50)-jvs(439) &
10663 *x(51)-jvs(440)*x(52)-jvs(441)*x(53)-jvs(442)*x(54)
10664 x(56) = x(56)-jvs(453)*x(10)-jvs(454)*x(14)-jvs(455)*x(16) &
10665 -jvs(456)*x(17)-jvs(457)*x(18)-jvs(458)*x(24)-jvs(459) &
10666 *x(26)-jvs(460)*x(27)-jvs(461)*x(28)-jvs(462)*x(29) &
10667 -jvs(463)*x(33)-jvs(464)*x(34)-jvs(465)*x(35)-jvs(466) &
10668 *x(36)-jvs(467)*x(38)-jvs(468)*x(39)-jvs(469)*x(40) &
10669 -jvs(470)*x(42)-jvs(471)*x(43)-jvs(472)*x(44)-jvs(473) &
10670 *x(45)-jvs(474)*x(46)-jvs(475)*x(47)-jvs(476)*x(48) &
10671 -jvs(477)*x(49)-jvs(478)*x(50)-jvs(479)*x(51)-jvs(480) &
10672 *x(52)-jvs(481)*x(53)-jvs(482)*x(54)-jvs(483)*x(55)
10673 x(57) = x(57)-jvs(493)*x(16)-jvs(494)*x(18)-jvs(495)*x(26) &
10674 -jvs(496)*x(29)-jvs(497)*x(35)-jvs(498)*x(38)-jvs(499) &
10675 *x(47)-jvs(500)*x(51)-jvs(501)*x(56)
10676 x(58) = x(58)-jvs(510)*x(22)-jvs(511)*x(32)-jvs(512)*x(37) &
10677 -jvs(513)*x(38)-jvs(514)*x(42)-jvs(515)*x(46)-jvs(516) &
10678 *x(50)-jvs(517)*x(51)-jvs(518)*x(52)-jvs(519)*x(53) &
10679 -jvs(520)*x(54)-jvs(521)*x(55)-jvs(522)*x(56)-jvs(523) &
10681 x(59) = x(59)-jvs(531)*x(30)-jvs(532)*x(35)-jvs(533)*x(37) &
10682 -jvs(534)*x(38)-jvs(535)*x(42)-jvs(536)*x(47)-jvs(537) &
10683 *x(51)-jvs(538)*x(53)-jvs(539)*x(57)-jvs(540)*x(58)
10684 x(60) = x(60)-jvs(547)*x(18)-jvs(548)*x(24)-jvs(549)*x(27) &
10685 -jvs(550)*x(28)-jvs(551)*x(29)-jvs(552)*x(34)-jvs(553) &
10686 *x(35)-jvs(554)*x(36)-jvs(555)*x(38)-jvs(556)*x(39) &
10687 -jvs(557)*x(40)-jvs(558)*x(42)-jvs(559)*x(43)-jvs(560) &
10688 *x(44)-jvs(561)*x(46)-jvs(562)*x(47)-jvs(563)*x(50) &
10689 -jvs(564)*x(51)-jvs(565)*x(52)-jvs(566)*x(53)-jvs(567) &
10690 *x(54)-jvs(568)*x(55)-jvs(569)*x(56)-jvs(570)*x(57) &
10691 -jvs(571)*x(58)-jvs(572)*x(59)
10692 x(61) = x(61)-jvs(578)*x(6)-jvs(579)*x(7)-jvs(580)*x(8)-jvs(581) &
10693 *x(9)-jvs(582)*x(11)-jvs(583)*x(12)-jvs(584)*x(13) &
10694 -jvs(585)*x(15)-jvs(586)*x(17)-jvs(587)*x(19)-jvs(588) &
10695 *x(21)-jvs(589)*x(22)-jvs(590)*x(23)-jvs(591)*x(24) &
10696 -jvs(592)*x(25)-jvs(593)*x(26)-jvs(594)*x(30)-jvs(595) &
10697 *x(31)-jvs(596)*x(32)-jvs(597)*x(33)-jvs(598)*x(34) &
10698 -jvs(599)*x(35)-jvs(600)*x(36)-jvs(601)*x(37)-jvs(602) &
10699 *x(38)-jvs(603)*x(41)-jvs(604)*x(42)-jvs(605)*x(43) &
10700 -jvs(606)*x(44)-jvs(607)*x(45)-jvs(608)*x(46)-jvs(609) &
10701 *x(47)-jvs(610)*x(48)-jvs(611)*x(49)-jvs(612)*x(50) &
10702 -jvs(613)*x(51)-jvs(614)*x(53)-jvs(615)*x(54)-jvs(616) &
10703 *x(55)-jvs(617)*x(56)-jvs(618)*x(57)-jvs(619)*x(58) &
10704 -jvs(620)*x(59)-jvs(621)*x(60)
10705 x(62) = x(62)-jvs(626)*x(14)-jvs(627)*x(26)-jvs(628)*x(33) &
10706 -jvs(629)*x(34)-jvs(630)*x(37)-jvs(631)*x(38)-jvs(632) &
10707 *x(40)-jvs(633)*x(42)-jvs(634)*x(43)-jvs(635)*x(44) &
10708 -jvs(636)*x(45)-jvs(637)*x(46)-jvs(638)*x(47)-jvs(639) &
10709 *x(48)-jvs(640)*x(49)-jvs(641)*x(50)-jvs(642)*x(51) &
10710 -jvs(643)*x(52)-jvs(644)*x(53)-jvs(645)*x(54)-jvs(646) &
10711 *x(55)-jvs(647)*x(56)-jvs(648)*x(57)-jvs(649)*x(58) &
10712 -jvs(650)*x(59)-jvs(651)*x(60)-jvs(652)*x(61)
10713 x(63) = x(63)-jvs(656)*x(7)-jvs(657)*x(8)-jvs(658)*x(12) &
10714 -jvs(659)*x(13)-jvs(660)*x(15)-jvs(661)*x(17)-jvs(662) &
10715 *x(18)-jvs(663)*x(19)-jvs(664)*x(21)-jvs(665)*x(22) &
10716 -jvs(666)*x(23)-jvs(667)*x(25)-jvs(668)*x(26)-jvs(669) &
10717 *x(27)-jvs(670)*x(28)-jvs(671)*x(29)-jvs(672)*x(31) &
10718 -jvs(673)*x(32)-jvs(674)*x(34)-jvs(675)*x(35)-jvs(676) &
10719 *x(36)-jvs(677)*x(37)-jvs(678)*x(38)-jvs(679)*x(39) &
10720 -jvs(680)*x(40)-jvs(681)*x(42)-jvs(682)*x(43)-jvs(683) &
10721 *x(44)-jvs(684)*x(45)-jvs(685)*x(46)-jvs(686)*x(47) &
10722 -jvs(687)*x(48)-jvs(688)*x(49)-jvs(689)*x(50)-jvs(690) &
10723 *x(51)-jvs(691)*x(52)-jvs(692)*x(53)-jvs(693)*x(54) &
10724 -jvs(694)*x(55)-jvs(695)*x(56)-jvs(696)*x(57)-jvs(697) &
10725 *x(58)-jvs(698)*x(59)-jvs(699)*x(60)-jvs(700)*x(61) &
10727 x(64) = x(64)-jvs(704)*x(41)-jvs(705)*x(42)-jvs(706)*x(51) &
10728 -jvs(707)*x(53)-jvs(708)*x(57)-jvs(709)*x(58)-jvs(710) &
10729 *x(59)-jvs(711)*x(60)-jvs(712)*x(61)-jvs(713)*x(62) &
10731 x(64) = x(64)/jvs(715)
10732 x(63) = (x(63)-jvs(703)*x(64))/(jvs(702))
10733 x(62) = (x(62)-jvs(654)*x(63)-jvs(655)*x(64))/(jvs(653))
10734 x(61) = (x(61)-jvs(623)*x(62)-jvs(624)*x(63)-jvs(625)*x(64))/ &
10736 x(60) = (x(60)-jvs(574)*x(61)-jvs(575)*x(62)-jvs(576)*x(63) &
10737 -jvs(577)*x(64))/(jvs(573))
10738 x(59) = (x(59)-jvs(542)*x(60)-jvs(543)*x(61)-jvs(544)*x(62) &
10739 -jvs(545)*x(63)-jvs(546)*x(64))/(jvs(541))
10740 x(58) = (x(58)-jvs(525)*x(59)-jvs(526)*x(60)-jvs(527)*x(61) &
10741 -jvs(528)*x(62)-jvs(529)*x(63)-jvs(530)*x(64))/(jvs(524))
10742 x(57) = (x(57)-jvs(503)*x(58)-jvs(504)*x(59)-jvs(505)*x(60) &
10743 -jvs(506)*x(61)-jvs(507)*x(62)-jvs(508)*x(63)-jvs(509) &
10745 x(56) = (x(56)-jvs(485)*x(57)-jvs(486)*x(58)-jvs(487)*x(59) &
10746 -jvs(488)*x(60)-jvs(489)*x(61)-jvs(490)*x(62)-jvs(491) &
10747 *x(63)-jvs(492)*x(64))/(jvs(484))
10748 x(55) = (x(55)-jvs(444)*x(56)-jvs(445)*x(57)-jvs(446)*x(58) &
10749 -jvs(447)*x(59)-jvs(448)*x(60)-jvs(449)*x(61)-jvs(450) &
10750 *x(62)-jvs(451)*x(63)-jvs(452)*x(64))/(jvs(443))
10751 x(54) = (x(54)-jvs(417)*x(55)-jvs(418)*x(56)-jvs(419)*x(57) &
10752 -jvs(420)*x(58)-jvs(421)*x(60)-jvs(422)*x(61)-jvs(423) &
10753 *x(62)-jvs(424)*x(63)-jvs(425)*x(64))/(jvs(416))
10754 x(53) = (x(53)-jvs(402)*x(58)-jvs(403)*x(59)-jvs(404)*x(60) &
10755 -jvs(405)*x(61)-jvs(406)*x(62)-jvs(407)*x(63)-jvs(408) &
10757 x(52) = (x(52)-jvs(387)*x(53)-jvs(388)*x(56)-jvs(389)*x(57) &
10758 -jvs(390)*x(58)-jvs(391)*x(59)-jvs(392)*x(60)-jvs(393) &
10759 *x(61)-jvs(394)*x(62)-jvs(395)*x(63)-jvs(396)*x(64))/ &
10761 x(51) = (x(51)-jvs(372)*x(58)-jvs(373)*x(60)-jvs(374)*x(61) &
10762 -jvs(375)*x(62)-jvs(376)*x(63))/(jvs(371))
10763 x(50) = (x(50)-jvs(360)*x(54)-jvs(361)*x(55)-jvs(362)*x(56) &
10764 -jvs(363)*x(58)-jvs(364)*x(60)-jvs(365)*x(61)-jvs(366) &
10765 *x(62)-jvs(367)*x(63))/(jvs(359))
10766 x(49) = (x(49)-jvs(341)*x(50)-jvs(342)*x(51)-jvs(343)*x(54) &
10767 -jvs(344)*x(55)-jvs(345)*x(56)-jvs(346)*x(57)-jvs(347) &
10768 *x(58)-jvs(348)*x(60)-jvs(349)*x(61)-jvs(350)*x(62) &
10769 -jvs(351)*x(63)-jvs(352)*x(64))/(jvs(340))
10770 x(48) = (x(48)-jvs(315)*x(51)-jvs(316)*x(53)-jvs(317)*x(57) &
10771 -jvs(318)*x(58)-jvs(319)*x(59)-jvs(320)*x(60)-jvs(321) &
10772 *x(61)-jvs(322)*x(62)-jvs(323)*x(63))/(jvs(314))
10773 x(47) = (x(47)-jvs(297)*x(57)-jvs(298)*x(58)-jvs(299)*x(60) &
10774 -jvs(300)*x(61)-jvs(301)*x(62)-jvs(302)*x(63))/(jvs(296))
10775 x(46) = (x(46)-jvs(289)*x(56)-jvs(290)*x(58)-jvs(291)*x(60) &
10776 -jvs(292)*x(61)-jvs(293)*x(62))/(jvs(288))
10777 x(45) = (x(45)-jvs(280)*x(46)-jvs(281)*x(54)-jvs(282)*x(55) &
10778 -jvs(283)*x(61)-jvs(284)*x(62)-jvs(285)*x(63))/(jvs(279))
10779 x(44) = (x(44)-jvs(269)*x(53)-jvs(270)*x(57)-jvs(271)*x(58) &
10780 -jvs(272)*x(59)-jvs(273)*x(60)-jvs(274)*x(61)-jvs(275) &
10781 *x(62)-jvs(276)*x(63))/(jvs(268))
10782 x(43) = (x(43)-jvs(256)*x(51)-jvs(257)*x(53)-jvs(258)*x(58) &
10783 -jvs(259)*x(60)-jvs(260)*x(61)-jvs(261)*x(62)-jvs(262) &
10784 *x(63)-jvs(263)*x(64))/(jvs(255))
10785 x(42) = (x(42)-jvs(247)*x(58)-jvs(248)*x(61)-jvs(249)*x(62))/ &
10787 x(41) = (x(41)-jvs(235)*x(42)-jvs(236)*x(51)-jvs(237)*x(53) &
10788 -jvs(238)*x(57)-jvs(239)*x(58)-jvs(240)*x(59)-jvs(241) &
10789 *x(60)-jvs(242)*x(61)-jvs(243)*x(62)-jvs(244)*x(63) &
10790 -jvs(245)*x(64))/(jvs(234))
10791 x(40) = (x(40)-jvs(222)*x(42)-jvs(223)*x(43)-jvs(224)*x(51) &
10792 -jvs(225)*x(53)-jvs(226)*x(57)-jvs(227)*x(58)-jvs(228) &
10793 *x(59)-jvs(229)*x(60)-jvs(230)*x(61)-jvs(231)*x(62) &
10794 -jvs(232)*x(63))/(jvs(221))
10795 x(39) = (x(39)-jvs(208)*x(46)-jvs(209)*x(50)-jvs(210)*x(55) &
10796 -jvs(211)*x(60)-jvs(212)*x(61)-jvs(213)*x(62))/(jvs(207))
10797 x(38) = (x(38)-jvs(203)*x(58)-jvs(204)*x(61)-jvs(205)*x(62))/ &
10799 x(37) = (x(37)-jvs(199)*x(58)-jvs(200)*x(61)-jvs(201)*x(62))/ &
10801 x(36) = (x(36)-jvs(194)*x(51)-jvs(195)*x(60)-jvs(196)*x(61) &
10802 -jvs(197)*x(63))/(jvs(193))
10803 x(35) = (x(35)-jvs(189)*x(38)-jvs(190)*x(60)-jvs(191)*x(61) &
10804 -jvs(192)*x(63))/(jvs(188))
10805 x(34) = (x(34)-jvs(185)*x(46)-jvs(186)*x(61)-jvs(187)*x(62))/ &
10807 x(33) = (x(33)-jvs(173)*x(34)-jvs(174)*x(43)-jvs(175)*x(45) &
10808 -jvs(176)*x(48)-jvs(177)*x(49)-jvs(178)*x(51)-jvs(179) &
10809 *x(54)-jvs(180)*x(56)-jvs(181)*x(61)-jvs(182)*x(62) &
10810 -jvs(183)*x(63))/(jvs(172))
10811 x(32) = (x(32)-jvs(166)*x(58)-jvs(167)*x(60)-jvs(168)*x(61) &
10812 -jvs(169)*x(62))/(jvs(165))
10813 x(31) = (x(31)-jvs(149)*x(32)-jvs(150)*x(36)-jvs(151)*x(37) &
10814 -jvs(152)*x(38)-jvs(153)*x(42)-jvs(154)*x(43)-jvs(155) &
10815 *x(48)-jvs(156)*x(49)-jvs(157)*x(51)-jvs(158)*x(54) &
10816 -jvs(159)*x(58)-jvs(160)*x(60)-jvs(161)*x(61)-jvs(162) &
10818 x(30) = (x(30)-jvs(133)*x(35)-jvs(134)*x(37)-jvs(135)*x(38) &
10819 -jvs(136)*x(42)-jvs(137)*x(47)-jvs(138)*x(51)-jvs(139) &
10820 *x(53)-jvs(140)*x(57)-jvs(141)*x(58)-jvs(142)*x(59) &
10821 -jvs(143)*x(60)-jvs(144)*x(61)-jvs(145)*x(62)-jvs(146) &
10823 x(29) = (x(29)-jvs(125)*x(38)-jvs(126)*x(60)-jvs(127)*x(62) &
10824 -jvs(128)*x(63))/(jvs(124))
10825 x(28) = (x(28)-jvs(120)*x(34)-jvs(121)*x(55)-jvs(122)*x(60) &
10826 -jvs(123)*x(61))/(jvs(119))
10827 x(27) = (x(27)-jvs(114)*x(50)-jvs(115)*x(55)-jvs(116)*x(60))/ &
10829 x(26) = (x(26)-jvs(111)*x(61)-jvs(112)*x(62))/(jvs(110))
10830 x(25) = (x(25)-jvs(104)*x(45)-jvs(105)*x(55)-jvs(106)*x(61) &
10831 -jvs(107)*x(63))/(jvs(103))
10832 x(24) = (x(24)-jvs(98)*x(54)-jvs(99)*x(56)-jvs(100)*x(60) &
10833 -jvs(101)*x(61)-jvs(102)*x(63))/(jvs(97))
10834 x(23) = (x(23)-jvs(92)*x(37)-jvs(93)*x(42)-jvs(94)*x(55)-jvs(95) &
10835 *x(58)-jvs(96)*x(61))/(jvs(91))
10836 x(22) = (x(22)-jvs(89)*x(58)-jvs(90)*x(61))/(jvs(88))
10837 x(21) = (x(21)-jvs(85)*x(44)-jvs(86)*x(61)-jvs(87)*x(63))/ &
10839 x(20) = (x(20)-jvs(73)*x(30)-jvs(74)*x(37)-jvs(75)*x(42)-jvs(76) &
10840 *x(47)-jvs(77)*x(53)-jvs(78)*x(57)-jvs(79)*x(58)-jvs(80) &
10841 *x(59)-jvs(81)*x(60)-jvs(82)*x(61)-jvs(83)*x(62))/ &
10843 x(19) = (x(19)-jvs(70)*x(34)-jvs(71)*x(61))/(jvs(69))
10844 x(18) = (x(18)-jvs(67)*x(60)-jvs(68)*x(61))/(jvs(66))
10845 x(17) = (x(17)-jvs(61)*x(56)-jvs(62)*x(61)-jvs(63)*x(63))/ &
10847 x(16) = (x(16)-jvs(56)*x(26)-jvs(57)*x(56)-jvs(58)*x(61)-jvs(59) &
10849 x(15) = (x(15)-jvs(54)*x(61))/(jvs(53))
10850 x(14) = (x(14)-jvs(51)*x(56)-jvs(52)*x(62))/(jvs(50))
10851 x(13) = (x(13)-jvs(47)*x(45)-jvs(48)*x(61)-jvs(49)*x(63))/ &
10853 x(12) = (x(12)-jvs(45)*x(61))/(jvs(44))
10854 x(11) = (x(11)-jvs(42)*x(19)-jvs(43)*x(61))/(jvs(41))
10855 x(10) = (x(10)-jvs(39)*x(52)-jvs(40)*x(56))/(jvs(38))
10856 x(9) = (x(9)-jvs(36)*x(44)-jvs(37)*x(61))/(jvs(35))
10857 x(8) = (x(8)-jvs(33)*x(50)-jvs(34)*x(61))/(jvs(32))
10858 x(7) = (x(7)-jvs(31)*x(61))/(jvs(30))
10859 x(6) = (x(6)-jvs(29)*x(58))/(jvs(28))
10860 x(5) = (x(5)-jvs(27)*x(39))/(jvs(26))
10861 x(4) = (x(4)-jvs(18)*x(45)-jvs(19)*x(49)-jvs(20)*x(50)-jvs(21) &
10862 *x(54)-jvs(22)*x(56)-jvs(23)*x(60)-jvs(24)*x(61)-jvs(25) &
10864 x(3) = (x(3)-jvs(12)*x(37)-jvs(13)*x(42)-jvs(14)*x(52)-jvs(15) &
10865 *x(58)-jvs(16)*x(63))/(jvs(11))
10866 x(2) = (x(2)-jvs(6)*x(22)-jvs(7)*x(37)-jvs(8)*x(38)-jvs(9)*x(51) &
10867 -jvs(10)*x(58))/(jvs(5))
10868 x(1) = (x(1)-jvs(2)*x(8)-jvs(3)*x(54)-jvs(4)*x(61))/(jvs(1))
10870 end subroutine cbmz_v02r06_solve
10873 !-----------------------------------------------------------------------
10874 end module module_cbmz_rodas_prep