! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ! ! The Stoichiometric Chemical Model File ! ! Generated by KPP-2.2 symbolic chemistry Kinetics PreProcessor ! (http://www.cs.vt.edu/~asandu/Software/KPP) ! KPP is distributed under GPL, the general public licence ! (http://www.gnu.org/copyleft/gpl.html) ! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa ! (C) 1997-2005, A. Sandu, Michigan Tech, Virginia Tech ! With important contributions from: ! M. Damian, Villanova University, USA ! R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany ! ! File : gckpp_adj_Stoichiom.f90 ! Time : Tue May 14 19:43:54 2013 ! Working directory : /home/daven/kpp-2.2.1/GC_KPP ! Equation file : gckpp_adj.kpp ! Output root filename : gckpp_adj ! ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MODULE gckpp_adj_Stoichiom USE gckpp_adj_Parameters USE gckpp_adj_StoichiomSP IMPLICIT NONE CONTAINS ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ! ! ReactantProd - Reactant Products in each equation ! Arguments : ! V - Concentrations of variable species (local) ! F - Concentrations of fixed species (local) ! ARP - Reactant product in each equation ! ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBROUTINE ReactantProd ( V, F, ARP ) ! V - Concentrations of variable species (local) REAL(kind=dp) :: V(NVAR) ! F - Concentrations of fixed species (local) REAL(kind=dp) :: F(NFIX) ! ARP - Reactant product in each equation REAL(kind=dp) :: ARP(NREACT) ! Reactant Products in each equation are useful in the ! stoichiometric formulation of mass action law ARP(1) = V(85)*V(89) ARP(2) = V(83)*V(89) ARP(3) = V(84)*V(89) ARP(4) = V(82)*V(89) ARP(5) = V(89)*V(90) ARP(6) = V(83)*V(83) ARP(7) = V(83)*V(83) ARP(8) = V(83)*V(84) ARP(9) = V(17)*V(83) ARP(10) = V(84)*V(85) ARP(11) = V(84)*V(84) ARP(12) = V(83)*F(9) ARP(13) = V(47)*V(83) ARP(14) = V(83)*F(2) ARP(15) = V(85)*V(90) ARP(16) = V(84)*V(90) ARP(17) = V(90)*V(90) ARP(18) = V(90)*V(90) ARP(19) = V(28)*V(83) ARP(20) = V(28)*V(83) ARP(21) = V(69)*V(83) ARP(22) = V(82)*V(83) ARP(23) = V(56)*V(83) ARP(24) = V(83)*V(85) ARP(25) = V(24)*V(83) ARP(26) = V(82)*V(84) ARP(27) = V(29) ARP(28) = V(29)*V(83) ARP(29) = V(84)*V(87) ARP(30) = V(85)*V(87) ARP(31) = V(83)*V(87) ARP(32) = V(82)*V(87) ARP(33) = V(25) ARP(34) = V(83)*F(11) ARP(35) = V(83)*F(13) ARP(36) = V(82)*V(87) ARP(37) = V(69)*V(87) ARP(38) = V(71)*V(83) ARP(39) = V(71)*V(87) ARP(40) = V(82)*V(86) ARP(41) = V(21) ARP(42) = V(85)*V(86) ARP(43) = V(23)*V(83) ARP(44) = V(74)*V(85) ARP(45) = V(16)*V(83) ARP(46) = V(16)*V(83) ARP(47) = V(52)*V(85) ARP(48) = V(70)*V(85) ARP(49) = V(22)*V(83) ARP(50) = V(72)*V(85) ARP(51) = V(72)*V(85) ARP(52) = V(54)*V(85) ARP(53) = V(62)*V(85) ARP(54) = V(60)*V(85) ARP(55) = V(79)*V(85) ARP(56) = V(79)*V(85) ARP(57) = V(57)*V(85) ARP(58) = V(57)*V(85) ARP(59) = V(66)*V(85) ARP(60) = V(65)*V(85) ARP(61) = V(64)*V(85) ARP(62) = V(64)*V(85) ARP(63) = V(59)*V(85) ARP(64) = V(59)*V(85) ARP(65) = V(51)*V(85) ARP(66) = V(55)*V(85) ARP(67) = V(53)*V(85) ARP(68) = V(67)*V(85) ARP(69) = V(63)*V(85) ARP(70) = V(22)*V(87) ARP(71) = V(73)*V(83) ARP(72) = V(83)*F(1) ARP(73) = V(68)*V(83) ARP(74) = V(81)*V(82) ARP(75) = V(18) ARP(76) = V(82)*V(88) ARP(77) = V(19) ARP(78) = V(78)*V(82) ARP(79) = V(44) ARP(80) = V(82)*F(5) ARP(81) = F(7) ARP(82) = V(81)*V(85) ARP(83) = V(85)*V(88) ARP(84) = V(78)*V(85) ARP(85) = V(85)*F(5) ARP(86) = V(68)*V(87) ARP(87) = V(49)*V(83) ARP(88) = V(49)*V(83) ARP(89) = V(52)*V(90) ARP(90) = V(70)*V(90) ARP(91) = V(72)*V(84) ARP(92) = V(54)*V(84) ARP(93) = V(62)*V(84) ARP(94) = V(60)*V(84) ARP(95) = V(79)*V(84) ARP(96) = V(57)*V(84) ARP(97) = V(66)*V(84) ARP(98) = V(65)*V(84) ARP(99) = V(64)*V(84) ARP(100) = V(59)*V(84) ARP(101) = V(51)*V(84) ARP(102) = V(55)*V(84) ARP(103) = V(53)*V(84) ARP(104) = V(67)*V(84) ARP(105) = V(63)*V(84) ARP(106) = V(76)*V(83) ARP(107) = V(74)*V(90) ARP(108) = V(76)*V(87) ARP(109) = V(72)*V(90) ARP(110) = V(54)*V(90) ARP(111) = V(62)*V(90) ARP(112) = V(60)*V(90) ARP(113) = V(79)*V(90) ARP(114) = V(57)*V(90) ARP(115) = V(66)*V(90) ARP(116) = V(65)*V(90) ARP(117) = V(64)*V(90) ARP(118) = V(59)*V(90) ARP(119) = V(51)*V(90) ARP(120) = V(55)*V(90) ARP(121) = V(53)*V(90) ARP(122) = V(67)*V(90) ARP(123) = V(63)*V(90) ARP(124) = V(83)*F(4) ARP(125) = V(83)*F(16) ARP(126) = V(74)*V(74) ARP(127) = V(74)*V(74) ARP(128) = V(74)*V(84) ARP(129) = V(52)*V(84) ARP(130) = V(70)*V(84) ARP(131) = V(84)*V(86) ARP(132) = V(81)*V(84) ARP(133) = V(84)*V(88) ARP(134) = V(78)*V(84) ARP(135) = V(84)*F(5) ARP(136) = V(48)*V(83) ARP(137) = V(48)*V(89) ARP(138) = V(44)*V(83) ARP(139) = V(44)*V(89) ARP(140) = V(50)*V(83) ARP(141) = V(48)*V(87) ARP(142) = V(83)*F(8) ARP(143) = V(75)*V(83) ARP(144) = V(87)*F(8) ARP(145) = V(75)*V(87) ARP(146) = V(46)*V(83) ARP(147) = V(77)*V(83) ARP(148) = V(80)*V(83) ARP(149) = V(61)*V(83) ARP(150) = V(52)*V(86) ARP(151) = V(70)*V(86) ARP(152) = V(52)*V(86) ARP(153) = V(70)*V(86) ARP(154) = V(46)*V(89) ARP(155) = V(77)*V(89) ARP(156) = V(80)*V(89) ARP(157) = V(46)*V(87) ARP(158) = V(80)*V(87) ARP(159) = V(80)*V(87) ARP(160) = V(81)*V(90) ARP(161) = V(88)*V(90) ARP(162) = V(78)*V(90) ARP(163) = V(90)*F(5) ARP(164) = V(81)*V(90) ARP(165) = V(88)*V(90) ARP(166) = V(78)*V(90) ARP(167) = V(90)*F(5) ARP(168) = V(39)*V(83) ARP(169) = V(38)*V(83) ARP(170) = V(35)*V(83) ARP(171) = V(31)*V(83) ARP(172) = V(32)*V(83) ARP(173) = V(30)*V(83) ARP(174) = V(33)*V(83) ARP(175) = V(37)*V(83) ARP(176) = V(36)*V(83) ARP(177) = V(83)*F(6) ARP(178) = V(45)*V(83) ARP(179) = V(41)*V(83) ARP(180) = V(43)*V(83) ARP(181) = V(42)*V(83) ARP(182) = V(40)*V(83) ARP(183) = V(26)*V(83) ARP(184) = V(27)*V(83) ARP(185) = V(23)*V(87) ARP(186) = V(83)*F(12) ARP(187) = V(58)*V(83) ARP(188) = V(58)*V(89) ARP(189) = V(86)*V(86) ARP(190) = V(86)*V(90) ARP(191) = V(86)*V(90) ARP(192) = V(72)*V(86) ARP(193) = V(62)*V(86) ARP(194) = V(60)*V(86) ARP(195) = V(79)*V(86) ARP(196) = V(57)*V(86) ARP(197) = V(66)*V(86) ARP(198) = V(65)*V(86) ARP(199) = V(64)*V(86) ARP(200) = V(59)*V(86) ARP(201) = V(53)*V(86) ARP(202) = V(54)*V(86) ARP(203) = V(51)*V(86) ARP(204) = V(55)*V(86) ARP(205) = V(67)*V(86) ARP(206) = V(63)*V(86) ARP(207) = V(72)*V(86) ARP(208) = V(62)*V(86) ARP(209) = V(60)*V(86) ARP(210) = V(79)*V(86) ARP(211) = V(57)*V(86) ARP(212) = V(66)*V(86) ARP(213) = V(64)*V(86) ARP(214) = V(59)*V(86) ARP(215) = V(54)*V(86) ARP(216) = V(65)*V(86) ARP(217) = V(51)*V(86) ARP(218) = V(55)*V(86) ARP(219) = V(67)*V(86) ARP(220) = V(63)*V(86) ARP(221) = V(53)*V(86) ARP(222) = V(74)*V(86) ARP(223) = V(74)*V(86) ARP(224) = V(81)*V(86) ARP(225) = V(86)*V(88) ARP(226) = V(78)*V(86) ARP(227) = V(86)*F(5) ARP(228) = V(87)*V(87) ARP(229) = F(3) ARP(230) = F(3) ARP(231) = F(3) ARP(232) = F(3) ARP(233) = F(3) ARP(234) = F(3) ARP(235) = F(3) ARP(236) = F(3) ARP(237) = F(3) ARP(238) = F(3) ARP(239) = F(3) ARP(240) = F(3) ARP(241) = F(3) ARP(242) = F(3) ARP(243) = V(82) ARP(244) = V(89) ARP(245) = V(21) ARP(246) = V(56) ARP(247) = V(69) ARP(248) = V(25) ARP(249) = V(17) ARP(250) = V(44) ARP(251) = V(18) ARP(252) = V(73) ARP(253) = V(84) ARP(254) = V(82) ARP(255) = V(87) ARP(256) = V(25) ARP(257) = V(34)*V(83) ARP(258) = V(34)*V(83) ARP(259) = V(34)*V(87) ARP(260) = V(20)*V(83) ARP(261) = V(89) ARP(262) = V(82) ARP(263) = V(17) ARP(264) = V(28) ARP(265) = V(69) ARP(266) = V(69) ARP(267) = V(56) ARP(268) = V(24) ARP(269) = V(29) ARP(270) = V(87) ARP(271) = V(87) ARP(272) = V(25) ARP(273) = V(25) ARP(274) = V(29) ARP(275) = V(71) ARP(276) = V(71) ARP(277) = V(21) ARP(278) = V(68) ARP(279) = V(49) ARP(280) = V(49) ARP(281) = V(76) ARP(282) = F(12) ARP(283) = V(50) ARP(284) = F(8) ARP(285) = F(8) ARP(286) = V(75) ARP(287) = V(75) ARP(288) = V(77) ARP(289) = V(77) ARP(290) = V(77) ARP(291) = V(80) ARP(292) = V(80) ARP(293) = V(61) ARP(294) = V(39) ARP(295) = V(38) ARP(296) = V(35) ARP(297) = V(31) ARP(298) = V(32) ARP(299) = V(30) ARP(300) = V(37) ARP(301) = V(33) ARP(302) = V(36) ARP(303) = F(6) ARP(304) = V(45) ARP(305) = V(41) ARP(306) = V(43) ARP(307) = V(42) ARP(308) = V(40) ARP(309) = V(26) ARP(310) = V(73) ARP(311) = V(27) END SUBROUTINE ReactantProd ! End of ReactantProd function ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ! ! JacReactantProd - Jacobian of Reactant Products vector ! Arguments : ! V - Concentrations of variable species (local) ! F - Concentrations of fixed species (local) ! JVRP - d ARP(1:NREACT)/d VAR (1:NVAR) ! ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBROUTINE JacReactantProd ( V, F, JVRP ) ! V - Concentrations of variable species (local) REAL(kind=dp) :: V(NVAR) ! F - Concentrations of fixed species (local) REAL(kind=dp) :: F(NFIX) ! JVRP - d ARP(1:NREACT)/d VAR (1:NVAR) REAL(kind=dp) :: JVRP(NJVRP) ! Reactant Products in each equation are useful in the ! stoichiometric formulation of mass action law ! Below we compute the Jacobian of the Reactant Products vector ! w.r.t. variable species: d ARP(1:NREACT) / d Var(1:NVAR) ! JVRP(1) = dARP(1)/dV(85) JVRP(1) = V(89) ! JVRP(2) = dARP(1)/dV(89) JVRP(2) = V(85) ! JVRP(3) = dARP(2)/dV(83) JVRP(3) = V(89) ! JVRP(4) = dARP(2)/dV(89) JVRP(4) = V(83) ! JVRP(5) = dARP(3)/dV(84) JVRP(5) = V(89) ! JVRP(6) = dARP(3)/dV(89) JVRP(6) = V(84) ! JVRP(7) = dARP(4)/dV(82) JVRP(7) = V(89) ! JVRP(8) = dARP(4)/dV(89) JVRP(8) = V(82) ! JVRP(9) = dARP(5)/dV(89) JVRP(9) = V(90) ! JVRP(10) = dARP(5)/dV(90) JVRP(10) = V(89) ! JVRP(11) = dARP(6)/dV(83) JVRP(11) = 2*V(83) ! JVRP(12) = dARP(7)/dV(83) JVRP(12) = 2*V(83) ! JVRP(13) = dARP(8)/dV(83) JVRP(13) = V(84) ! JVRP(14) = dARP(8)/dV(84) JVRP(14) = V(83) ! JVRP(15) = dARP(9)/dV(17) JVRP(15) = V(83) ! JVRP(16) = dARP(9)/dV(83) JVRP(16) = V(17) ! JVRP(17) = dARP(10)/dV(84) JVRP(17) = V(85) ! JVRP(18) = dARP(10)/dV(85) JVRP(18) = V(84) ! JVRP(19) = dARP(11)/dV(84) JVRP(19) = 2*V(84) ! JVRP(20) = dARP(12)/dV(83) JVRP(20) = F(9) ! JVRP(21) = dARP(13)/dV(47) JVRP(21) = V(83) ! JVRP(22) = dARP(13)/dV(83) JVRP(22) = V(47) ! JVRP(23) = dARP(14)/dV(83) JVRP(23) = F(2) ! JVRP(24) = dARP(15)/dV(85) JVRP(24) = V(90) ! JVRP(25) = dARP(15)/dV(90) JVRP(25) = V(85) ! JVRP(26) = dARP(16)/dV(84) JVRP(26) = V(90) ! JVRP(27) = dARP(16)/dV(90) JVRP(27) = V(84) ! JVRP(28) = dARP(17)/dV(90) JVRP(28) = 2*V(90) ! JVRP(29) = dARP(18)/dV(90) JVRP(29) = 2*V(90) ! JVRP(30) = dARP(19)/dV(28) JVRP(30) = V(83) ! JVRP(31) = dARP(19)/dV(83) JVRP(31) = V(28) ! JVRP(32) = dARP(20)/dV(28) JVRP(32) = V(83) ! JVRP(33) = dARP(20)/dV(83) JVRP(33) = V(28) ! JVRP(34) = dARP(21)/dV(69) JVRP(34) = V(83) ! JVRP(35) = dARP(21)/dV(83) JVRP(35) = V(69) ! JVRP(36) = dARP(22)/dV(82) JVRP(36) = V(83) ! JVRP(37) = dARP(22)/dV(83) JVRP(37) = V(82) ! JVRP(38) = dARP(23)/dV(56) JVRP(38) = V(83) ! JVRP(39) = dARP(23)/dV(83) JVRP(39) = V(56) ! JVRP(40) = dARP(24)/dV(83) JVRP(40) = V(85) ! JVRP(41) = dARP(24)/dV(85) JVRP(41) = V(83) ! JVRP(42) = dARP(25)/dV(24) JVRP(42) = V(83) ! JVRP(43) = dARP(25)/dV(83) JVRP(43) = V(24) ! JVRP(44) = dARP(26)/dV(82) JVRP(44) = V(84) ! JVRP(45) = dARP(26)/dV(84) JVRP(45) = V(82) ! JVRP(46) = dARP(27)/dV(29) JVRP(46) = 1 ! JVRP(47) = dARP(28)/dV(29) JVRP(47) = V(83) ! JVRP(48) = dARP(28)/dV(83) JVRP(48) = V(29) ! JVRP(49) = dARP(29)/dV(84) JVRP(49) = V(87) ! JVRP(50) = dARP(29)/dV(87) JVRP(50) = V(84) ! JVRP(51) = dARP(30)/dV(85) JVRP(51) = V(87) ! JVRP(52) = dARP(30)/dV(87) JVRP(52) = V(85) ! JVRP(53) = dARP(31)/dV(83) JVRP(53) = V(87) ! JVRP(54) = dARP(31)/dV(87) JVRP(54) = V(83) ! JVRP(55) = dARP(32)/dV(82) JVRP(55) = V(87) ! JVRP(56) = dARP(32)/dV(87) JVRP(56) = V(82) ! JVRP(57) = dARP(33)/dV(25) JVRP(57) = 1 ! JVRP(58) = dARP(34)/dV(83) JVRP(58) = F(11) ! JVRP(59) = dARP(35)/dV(83) JVRP(59) = F(13) ! JVRP(60) = dARP(36)/dV(82) JVRP(60) = V(87) ! JVRP(61) = dARP(36)/dV(87) JVRP(61) = V(82) ! JVRP(62) = dARP(37)/dV(69) JVRP(62) = V(87) ! JVRP(63) = dARP(37)/dV(87) JVRP(63) = V(69) ! JVRP(64) = dARP(38)/dV(71) JVRP(64) = V(83) ! JVRP(65) = dARP(38)/dV(83) JVRP(65) = V(71) ! JVRP(66) = dARP(39)/dV(71) JVRP(66) = V(87) ! JVRP(67) = dARP(39)/dV(87) JVRP(67) = V(71) ! JVRP(68) = dARP(40)/dV(82) JVRP(68) = V(86) ! JVRP(69) = dARP(40)/dV(86) JVRP(69) = V(82) ! JVRP(70) = dARP(41)/dV(21) JVRP(70) = 1 ! JVRP(71) = dARP(42)/dV(85) JVRP(71) = V(86) ! JVRP(72) = dARP(42)/dV(86) JVRP(72) = V(85) ! JVRP(73) = dARP(43)/dV(23) JVRP(73) = V(83) ! JVRP(74) = dARP(43)/dV(83) JVRP(74) = V(23) ! JVRP(75) = dARP(44)/dV(74) JVRP(75) = V(85) ! JVRP(76) = dARP(44)/dV(85) JVRP(76) = V(74) ! JVRP(77) = dARP(45)/dV(16) JVRP(77) = V(83) ! JVRP(78) = dARP(45)/dV(83) JVRP(78) = V(16) ! JVRP(79) = dARP(46)/dV(16) JVRP(79) = V(83) ! JVRP(80) = dARP(46)/dV(83) JVRP(80) = V(16) ! JVRP(81) = dARP(47)/dV(52) JVRP(81) = V(85) ! JVRP(82) = dARP(47)/dV(85) JVRP(82) = V(52) ! JVRP(83) = dARP(48)/dV(70) JVRP(83) = V(85) ! JVRP(84) = dARP(48)/dV(85) JVRP(84) = V(70) ! JVRP(85) = dARP(49)/dV(22) JVRP(85) = V(83) ! JVRP(86) = dARP(49)/dV(83) JVRP(86) = V(22) ! JVRP(87) = dARP(50)/dV(72) JVRP(87) = V(85) ! JVRP(88) = dARP(50)/dV(85) JVRP(88) = V(72) ! JVRP(89) = dARP(51)/dV(72) JVRP(89) = V(85) ! JVRP(90) = dARP(51)/dV(85) JVRP(90) = V(72) ! JVRP(91) = dARP(52)/dV(54) JVRP(91) = V(85) ! JVRP(92) = dARP(52)/dV(85) JVRP(92) = V(54) ! JVRP(93) = dARP(53)/dV(62) JVRP(93) = V(85) ! JVRP(94) = dARP(53)/dV(85) JVRP(94) = V(62) ! JVRP(95) = dARP(54)/dV(60) JVRP(95) = V(85) ! JVRP(96) = dARP(54)/dV(85) JVRP(96) = V(60) ! JVRP(97) = dARP(55)/dV(79) JVRP(97) = V(85) ! JVRP(98) = dARP(55)/dV(85) JVRP(98) = V(79) ! JVRP(99) = dARP(56)/dV(79) JVRP(99) = V(85) ! JVRP(100) = dARP(56)/dV(85) JVRP(100) = V(79) ! JVRP(101) = dARP(57)/dV(57) JVRP(101) = V(85) ! JVRP(102) = dARP(57)/dV(85) JVRP(102) = V(57) ! JVRP(103) = dARP(58)/dV(57) JVRP(103) = V(85) ! JVRP(104) = dARP(58)/dV(85) JVRP(104) = V(57) ! JVRP(105) = dARP(59)/dV(66) JVRP(105) = V(85) ! JVRP(106) = dARP(59)/dV(85) JVRP(106) = V(66) ! JVRP(107) = dARP(60)/dV(65) JVRP(107) = V(85) ! JVRP(108) = dARP(60)/dV(85) JVRP(108) = V(65) ! JVRP(109) = dARP(61)/dV(64) JVRP(109) = V(85) ! JVRP(110) = dARP(61)/dV(85) JVRP(110) = V(64) ! JVRP(111) = dARP(62)/dV(64) JVRP(111) = V(85) ! JVRP(112) = dARP(62)/dV(85) JVRP(112) = V(64) ! JVRP(113) = dARP(63)/dV(59) JVRP(113) = V(85) ! JVRP(114) = dARP(63)/dV(85) JVRP(114) = V(59) ! JVRP(115) = dARP(64)/dV(59) JVRP(115) = V(85) ! JVRP(116) = dARP(64)/dV(85) JVRP(116) = V(59) ! JVRP(117) = dARP(65)/dV(51) JVRP(117) = V(85) ! JVRP(118) = dARP(65)/dV(85) JVRP(118) = V(51) ! JVRP(119) = dARP(66)/dV(55) JVRP(119) = V(85) ! JVRP(120) = dARP(66)/dV(85) JVRP(120) = V(55) ! JVRP(121) = dARP(67)/dV(53) JVRP(121) = V(85) ! JVRP(122) = dARP(67)/dV(85) JVRP(122) = V(53) ! JVRP(123) = dARP(68)/dV(67) JVRP(123) = V(85) ! JVRP(124) = dARP(68)/dV(85) JVRP(124) = V(67) ! JVRP(125) = dARP(69)/dV(63) JVRP(125) = V(85) ! JVRP(126) = dARP(69)/dV(85) JVRP(126) = V(63) ! JVRP(127) = dARP(70)/dV(22) JVRP(127) = V(87) ! JVRP(128) = dARP(70)/dV(87) JVRP(128) = V(22) ! JVRP(129) = dARP(71)/dV(73) JVRP(129) = V(83) ! JVRP(130) = dARP(71)/dV(83) JVRP(130) = V(73) ! JVRP(131) = dARP(72)/dV(83) JVRP(131) = F(1) ! JVRP(132) = dARP(73)/dV(68) JVRP(132) = V(83) ! JVRP(133) = dARP(73)/dV(83) JVRP(133) = V(68) ! JVRP(134) = dARP(74)/dV(81) JVRP(134) = V(82) ! JVRP(135) = dARP(74)/dV(82) JVRP(135) = V(81) ! JVRP(136) = dARP(75)/dV(18) JVRP(136) = 1 ! JVRP(137) = dARP(76)/dV(82) JVRP(137) = V(88) ! JVRP(138) = dARP(76)/dV(88) JVRP(138) = V(82) ! JVRP(139) = dARP(77)/dV(19) JVRP(139) = 1 ! JVRP(140) = dARP(78)/dV(78) JVRP(140) = V(82) ! JVRP(141) = dARP(78)/dV(82) JVRP(141) = V(78) ! JVRP(142) = dARP(79)/dV(44) JVRP(142) = 1 ! JVRP(143) = dARP(80)/dV(82) JVRP(143) = F(5) ! JVRP(144) = dARP(82)/dV(81) JVRP(144) = V(85) ! JVRP(145) = dARP(82)/dV(85) JVRP(145) = V(81) ! JVRP(146) = dARP(83)/dV(85) JVRP(146) = V(88) ! JVRP(147) = dARP(83)/dV(88) JVRP(147) = V(85) ! JVRP(148) = dARP(84)/dV(78) JVRP(148) = V(85) ! JVRP(149) = dARP(84)/dV(85) JVRP(149) = V(78) ! JVRP(150) = dARP(85)/dV(85) JVRP(150) = F(5) ! JVRP(151) = dARP(86)/dV(68) JVRP(151) = V(87) ! JVRP(152) = dARP(86)/dV(87) JVRP(152) = V(68) ! JVRP(153) = dARP(87)/dV(49) JVRP(153) = V(83) ! JVRP(154) = dARP(87)/dV(83) JVRP(154) = V(49) ! JVRP(155) = dARP(88)/dV(49) JVRP(155) = V(83) ! JVRP(156) = dARP(88)/dV(83) JVRP(156) = V(49) ! JVRP(157) = dARP(89)/dV(52) JVRP(157) = V(90) ! JVRP(158) = dARP(89)/dV(90) JVRP(158) = V(52) ! JVRP(159) = dARP(90)/dV(70) JVRP(159) = V(90) ! JVRP(160) = dARP(90)/dV(90) JVRP(160) = V(70) ! JVRP(161) = dARP(91)/dV(72) JVRP(161) = V(84) ! JVRP(162) = dARP(91)/dV(84) JVRP(162) = V(72) ! JVRP(163) = dARP(92)/dV(54) JVRP(163) = V(84) ! JVRP(164) = dARP(92)/dV(84) JVRP(164) = V(54) ! JVRP(165) = dARP(93)/dV(62) JVRP(165) = V(84) ! JVRP(166) = dARP(93)/dV(84) JVRP(166) = V(62) ! JVRP(167) = dARP(94)/dV(60) JVRP(167) = V(84) ! JVRP(168) = dARP(94)/dV(84) JVRP(168) = V(60) ! JVRP(169) = dARP(95)/dV(79) JVRP(169) = V(84) ! JVRP(170) = dARP(95)/dV(84) JVRP(170) = V(79) ! JVRP(171) = dARP(96)/dV(57) JVRP(171) = V(84) ! JVRP(172) = dARP(96)/dV(84) JVRP(172) = V(57) ! JVRP(173) = dARP(97)/dV(66) JVRP(173) = V(84) ! JVRP(174) = dARP(97)/dV(84) JVRP(174) = V(66) ! JVRP(175) = dARP(98)/dV(65) JVRP(175) = V(84) ! JVRP(176) = dARP(98)/dV(84) JVRP(176) = V(65) ! JVRP(177) = dARP(99)/dV(64) JVRP(177) = V(84) ! JVRP(178) = dARP(99)/dV(84) JVRP(178) = V(64) ! JVRP(179) = dARP(100)/dV(59) JVRP(179) = V(84) ! JVRP(180) = dARP(100)/dV(84) JVRP(180) = V(59) ! JVRP(181) = dARP(101)/dV(51) JVRP(181) = V(84) ! JVRP(182) = dARP(101)/dV(84) JVRP(182) = V(51) ! JVRP(183) = dARP(102)/dV(55) JVRP(183) = V(84) ! JVRP(184) = dARP(102)/dV(84) JVRP(184) = V(55) ! JVRP(185) = dARP(103)/dV(53) JVRP(185) = V(84) ! JVRP(186) = dARP(103)/dV(84) JVRP(186) = V(53) ! JVRP(187) = dARP(104)/dV(67) JVRP(187) = V(84) ! JVRP(188) = dARP(104)/dV(84) JVRP(188) = V(67) ! JVRP(189) = dARP(105)/dV(63) JVRP(189) = V(84) ! JVRP(190) = dARP(105)/dV(84) JVRP(190) = V(63) ! JVRP(191) = dARP(106)/dV(76) JVRP(191) = V(83) ! JVRP(192) = dARP(106)/dV(83) JVRP(192) = V(76) ! JVRP(193) = dARP(107)/dV(74) JVRP(193) = V(90) ! JVRP(194) = dARP(107)/dV(90) JVRP(194) = V(74) ! JVRP(195) = dARP(108)/dV(76) JVRP(195) = V(87) ! JVRP(196) = dARP(108)/dV(87) JVRP(196) = V(76) ! JVRP(197) = dARP(109)/dV(72) JVRP(197) = V(90) ! JVRP(198) = dARP(109)/dV(90) JVRP(198) = V(72) ! JVRP(199) = dARP(110)/dV(54) JVRP(199) = V(90) ! JVRP(200) = dARP(110)/dV(90) JVRP(200) = V(54) ! JVRP(201) = dARP(111)/dV(62) JVRP(201) = V(90) ! JVRP(202) = dARP(111)/dV(90) JVRP(202) = V(62) ! JVRP(203) = dARP(112)/dV(60) JVRP(203) = V(90) ! JVRP(204) = dARP(112)/dV(90) JVRP(204) = V(60) ! JVRP(205) = dARP(113)/dV(79) JVRP(205) = V(90) ! JVRP(206) = dARP(113)/dV(90) JVRP(206) = V(79) ! JVRP(207) = dARP(114)/dV(57) JVRP(207) = V(90) ! JVRP(208) = dARP(114)/dV(90) JVRP(208) = V(57) ! JVRP(209) = dARP(115)/dV(66) JVRP(209) = V(90) ! JVRP(210) = dARP(115)/dV(90) JVRP(210) = V(66) ! JVRP(211) = dARP(116)/dV(65) JVRP(211) = V(90) ! JVRP(212) = dARP(116)/dV(90) JVRP(212) = V(65) ! JVRP(213) = dARP(117)/dV(64) JVRP(213) = V(90) ! JVRP(214) = dARP(117)/dV(90) JVRP(214) = V(64) ! JVRP(215) = dARP(118)/dV(59) JVRP(215) = V(90) ! JVRP(216) = dARP(118)/dV(90) JVRP(216) = V(59) ! JVRP(217) = dARP(119)/dV(51) JVRP(217) = V(90) ! JVRP(218) = dARP(119)/dV(90) JVRP(218) = V(51) ! JVRP(219) = dARP(120)/dV(55) JVRP(219) = V(90) ! JVRP(220) = dARP(120)/dV(90) JVRP(220) = V(55) ! JVRP(221) = dARP(121)/dV(53) JVRP(221) = V(90) ! JVRP(222) = dARP(121)/dV(90) JVRP(222) = V(53) ! JVRP(223) = dARP(122)/dV(67) JVRP(223) = V(90) ! JVRP(224) = dARP(122)/dV(90) JVRP(224) = V(67) ! JVRP(225) = dARP(123)/dV(63) JVRP(225) = V(90) ! JVRP(226) = dARP(123)/dV(90) JVRP(226) = V(63) ! JVRP(227) = dARP(124)/dV(83) JVRP(227) = F(4) ! JVRP(228) = dARP(125)/dV(83) JVRP(228) = F(16) ! JVRP(229) = dARP(126)/dV(74) JVRP(229) = 2*V(74) ! JVRP(230) = dARP(127)/dV(74) JVRP(230) = 2*V(74) ! JVRP(231) = dARP(128)/dV(74) JVRP(231) = V(84) ! JVRP(232) = dARP(128)/dV(84) JVRP(232) = V(74) ! JVRP(233) = dARP(129)/dV(52) JVRP(233) = V(84) ! JVRP(234) = dARP(129)/dV(84) JVRP(234) = V(52) ! JVRP(235) = dARP(130)/dV(70) JVRP(235) = V(84) ! JVRP(236) = dARP(130)/dV(84) JVRP(236) = V(70) ! JVRP(237) = dARP(131)/dV(84) JVRP(237) = V(86) ! JVRP(238) = dARP(131)/dV(86) JVRP(238) = V(84) ! JVRP(239) = dARP(132)/dV(81) JVRP(239) = V(84) ! JVRP(240) = dARP(132)/dV(84) JVRP(240) = V(81) ! JVRP(241) = dARP(133)/dV(84) JVRP(241) = V(88) ! JVRP(242) = dARP(133)/dV(88) JVRP(242) = V(84) ! JVRP(243) = dARP(134)/dV(78) JVRP(243) = V(84) ! JVRP(244) = dARP(134)/dV(84) JVRP(244) = V(78) ! JVRP(245) = dARP(135)/dV(84) JVRP(245) = F(5) ! JVRP(246) = dARP(136)/dV(48) JVRP(246) = V(83) ! JVRP(247) = dARP(136)/dV(83) JVRP(247) = V(48) ! JVRP(248) = dARP(137)/dV(48) JVRP(248) = V(89) ! JVRP(249) = dARP(137)/dV(89) JVRP(249) = V(48) ! JVRP(250) = dARP(138)/dV(44) JVRP(250) = V(83) ! JVRP(251) = dARP(138)/dV(83) JVRP(251) = V(44) ! JVRP(252) = dARP(139)/dV(44) JVRP(252) = V(89) ! JVRP(253) = dARP(139)/dV(89) JVRP(253) = V(44) ! JVRP(254) = dARP(140)/dV(50) JVRP(254) = V(83) ! JVRP(255) = dARP(140)/dV(83) JVRP(255) = V(50) ! JVRP(256) = dARP(141)/dV(48) JVRP(256) = V(87) ! JVRP(257) = dARP(141)/dV(87) JVRP(257) = V(48) ! JVRP(258) = dARP(142)/dV(83) JVRP(258) = F(8) ! JVRP(259) = dARP(143)/dV(75) JVRP(259) = V(83) ! JVRP(260) = dARP(143)/dV(83) JVRP(260) = V(75) ! JVRP(261) = dARP(144)/dV(87) JVRP(261) = F(8) ! JVRP(262) = dARP(145)/dV(75) JVRP(262) = V(87) ! JVRP(263) = dARP(145)/dV(87) JVRP(263) = V(75) ! JVRP(264) = dARP(146)/dV(46) JVRP(264) = V(83) ! JVRP(265) = dARP(146)/dV(83) JVRP(265) = V(46) ! JVRP(266) = dARP(147)/dV(77) JVRP(266) = V(83) ! JVRP(267) = dARP(147)/dV(83) JVRP(267) = V(77) ! JVRP(268) = dARP(148)/dV(80) JVRP(268) = V(83) ! JVRP(269) = dARP(148)/dV(83) JVRP(269) = V(80) ! JVRP(270) = dARP(149)/dV(61) JVRP(270) = V(83) ! JVRP(271) = dARP(149)/dV(83) JVRP(271) = V(61) ! JVRP(272) = dARP(150)/dV(52) JVRP(272) = V(86) ! JVRP(273) = dARP(150)/dV(86) JVRP(273) = V(52) ! JVRP(274) = dARP(151)/dV(70) JVRP(274) = V(86) ! JVRP(275) = dARP(151)/dV(86) JVRP(275) = V(70) ! JVRP(276) = dARP(152)/dV(52) JVRP(276) = V(86) ! JVRP(277) = dARP(152)/dV(86) JVRP(277) = V(52) ! JVRP(278) = dARP(153)/dV(70) JVRP(278) = V(86) ! JVRP(279) = dARP(153)/dV(86) JVRP(279) = V(70) ! JVRP(280) = dARP(154)/dV(46) JVRP(280) = V(89) ! JVRP(281) = dARP(154)/dV(89) JVRP(281) = V(46) ! JVRP(282) = dARP(155)/dV(77) JVRP(282) = V(89) ! JVRP(283) = dARP(155)/dV(89) JVRP(283) = V(77) ! JVRP(284) = dARP(156)/dV(80) JVRP(284) = V(89) ! JVRP(285) = dARP(156)/dV(89) JVRP(285) = V(80) ! JVRP(286) = dARP(157)/dV(46) JVRP(286) = V(87) ! JVRP(287) = dARP(157)/dV(87) JVRP(287) = V(46) ! JVRP(288) = dARP(158)/dV(80) JVRP(288) = V(87) ! JVRP(289) = dARP(158)/dV(87) JVRP(289) = V(80) ! JVRP(290) = dARP(159)/dV(80) JVRP(290) = V(87) ! JVRP(291) = dARP(159)/dV(87) JVRP(291) = V(80) ! JVRP(292) = dARP(160)/dV(81) JVRP(292) = V(90) ! JVRP(293) = dARP(160)/dV(90) JVRP(293) = V(81) ! JVRP(294) = dARP(161)/dV(88) JVRP(294) = V(90) ! JVRP(295) = dARP(161)/dV(90) JVRP(295) = V(88) ! JVRP(296) = dARP(162)/dV(78) JVRP(296) = V(90) ! JVRP(297) = dARP(162)/dV(90) JVRP(297) = V(78) ! JVRP(298) = dARP(163)/dV(90) JVRP(298) = F(5) ! JVRP(299) = dARP(164)/dV(81) JVRP(299) = V(90) ! JVRP(300) = dARP(164)/dV(90) JVRP(300) = V(81) ! JVRP(301) = dARP(165)/dV(88) JVRP(301) = V(90) ! JVRP(302) = dARP(165)/dV(90) JVRP(302) = V(88) ! JVRP(303) = dARP(166)/dV(78) JVRP(303) = V(90) ! JVRP(304) = dARP(166)/dV(90) JVRP(304) = V(78) ! JVRP(305) = dARP(167)/dV(90) JVRP(305) = F(5) ! JVRP(306) = dARP(168)/dV(39) JVRP(306) = V(83) ! JVRP(307) = dARP(168)/dV(83) JVRP(307) = V(39) ! JVRP(308) = dARP(169)/dV(38) JVRP(308) = V(83) ! JVRP(309) = dARP(169)/dV(83) JVRP(309) = V(38) ! JVRP(310) = dARP(170)/dV(35) JVRP(310) = V(83) ! JVRP(311) = dARP(170)/dV(83) JVRP(311) = V(35) ! JVRP(312) = dARP(171)/dV(31) JVRP(312) = V(83) ! JVRP(313) = dARP(171)/dV(83) JVRP(313) = V(31) ! JVRP(314) = dARP(172)/dV(32) JVRP(314) = V(83) ! JVRP(315) = dARP(172)/dV(83) JVRP(315) = V(32) ! JVRP(316) = dARP(173)/dV(30) JVRP(316) = V(83) ! JVRP(317) = dARP(173)/dV(83) JVRP(317) = V(30) ! JVRP(318) = dARP(174)/dV(33) JVRP(318) = V(83) ! JVRP(319) = dARP(174)/dV(83) JVRP(319) = V(33) ! JVRP(320) = dARP(175)/dV(37) JVRP(320) = V(83) ! JVRP(321) = dARP(175)/dV(83) JVRP(321) = V(37) ! JVRP(322) = dARP(176)/dV(36) JVRP(322) = V(83) ! JVRP(323) = dARP(176)/dV(83) JVRP(323) = V(36) ! JVRP(324) = dARP(177)/dV(83) JVRP(324) = F(6) ! JVRP(325) = dARP(178)/dV(45) JVRP(325) = V(83) ! JVRP(326) = dARP(178)/dV(83) JVRP(326) = V(45) ! JVRP(327) = dARP(179)/dV(41) JVRP(327) = V(83) ! JVRP(328) = dARP(179)/dV(83) JVRP(328) = V(41) ! JVRP(329) = dARP(180)/dV(43) JVRP(329) = V(83) ! JVRP(330) = dARP(180)/dV(83) JVRP(330) = V(43) ! JVRP(331) = dARP(181)/dV(42) JVRP(331) = V(83) ! JVRP(332) = dARP(181)/dV(83) JVRP(332) = V(42) ! JVRP(333) = dARP(182)/dV(40) JVRP(333) = V(83) ! JVRP(334) = dARP(182)/dV(83) JVRP(334) = V(40) ! JVRP(335) = dARP(183)/dV(26) JVRP(335) = V(83) ! JVRP(336) = dARP(183)/dV(83) JVRP(336) = V(26) ! JVRP(337) = dARP(184)/dV(27) JVRP(337) = V(83) ! JVRP(338) = dARP(184)/dV(83) JVRP(338) = V(27) ! JVRP(339) = dARP(185)/dV(23) JVRP(339) = V(87) ! JVRP(340) = dARP(185)/dV(87) JVRP(340) = V(23) ! JVRP(341) = dARP(186)/dV(83) JVRP(341) = F(12) ! JVRP(342) = dARP(187)/dV(58) JVRP(342) = V(83) ! JVRP(343) = dARP(187)/dV(83) JVRP(343) = V(58) ! JVRP(344) = dARP(188)/dV(58) JVRP(344) = V(89) ! JVRP(345) = dARP(188)/dV(89) JVRP(345) = V(58) ! JVRP(346) = dARP(189)/dV(86) JVRP(346) = 2*V(86) ! JVRP(347) = dARP(190)/dV(86) JVRP(347) = V(90) ! JVRP(348) = dARP(190)/dV(90) JVRP(348) = V(86) ! JVRP(349) = dARP(191)/dV(86) JVRP(349) = V(90) ! JVRP(350) = dARP(191)/dV(90) JVRP(350) = V(86) ! JVRP(351) = dARP(192)/dV(72) JVRP(351) = V(86) ! JVRP(352) = dARP(192)/dV(86) JVRP(352) = V(72) ! JVRP(353) = dARP(193)/dV(62) JVRP(353) = V(86) ! JVRP(354) = dARP(193)/dV(86) JVRP(354) = V(62) ! JVRP(355) = dARP(194)/dV(60) JVRP(355) = V(86) ! JVRP(356) = dARP(194)/dV(86) JVRP(356) = V(60) ! JVRP(357) = dARP(195)/dV(79) JVRP(357) = V(86) ! JVRP(358) = dARP(195)/dV(86) JVRP(358) = V(79) ! JVRP(359) = dARP(196)/dV(57) JVRP(359) = V(86) ! JVRP(360) = dARP(196)/dV(86) JVRP(360) = V(57) ! JVRP(361) = dARP(197)/dV(66) JVRP(361) = V(86) ! JVRP(362) = dARP(197)/dV(86) JVRP(362) = V(66) ! JVRP(363) = dARP(198)/dV(65) JVRP(363) = V(86) ! JVRP(364) = dARP(198)/dV(86) JVRP(364) = V(65) ! JVRP(365) = dARP(199)/dV(64) JVRP(365) = V(86) ! JVRP(366) = dARP(199)/dV(86) JVRP(366) = V(64) ! JVRP(367) = dARP(200)/dV(59) JVRP(367) = V(86) ! JVRP(368) = dARP(200)/dV(86) JVRP(368) = V(59) ! JVRP(369) = dARP(201)/dV(53) JVRP(369) = V(86) ! JVRP(370) = dARP(201)/dV(86) JVRP(370) = V(53) ! JVRP(371) = dARP(202)/dV(54) JVRP(371) = V(86) ! JVRP(372) = dARP(202)/dV(86) JVRP(372) = V(54) ! JVRP(373) = dARP(203)/dV(51) JVRP(373) = V(86) ! JVRP(374) = dARP(203)/dV(86) JVRP(374) = V(51) ! JVRP(375) = dARP(204)/dV(55) JVRP(375) = V(86) ! JVRP(376) = dARP(204)/dV(86) JVRP(376) = V(55) ! JVRP(377) = dARP(205)/dV(67) JVRP(377) = V(86) ! JVRP(378) = dARP(205)/dV(86) JVRP(378) = V(67) ! JVRP(379) = dARP(206)/dV(63) JVRP(379) = V(86) ! JVRP(380) = dARP(206)/dV(86) JVRP(380) = V(63) ! JVRP(381) = dARP(207)/dV(72) JVRP(381) = V(86) ! JVRP(382) = dARP(207)/dV(86) JVRP(382) = V(72) ! JVRP(383) = dARP(208)/dV(62) JVRP(383) = V(86) ! JVRP(384) = dARP(208)/dV(86) JVRP(384) = V(62) ! JVRP(385) = dARP(209)/dV(60) JVRP(385) = V(86) ! JVRP(386) = dARP(209)/dV(86) JVRP(386) = V(60) ! JVRP(387) = dARP(210)/dV(79) JVRP(387) = V(86) ! JVRP(388) = dARP(210)/dV(86) JVRP(388) = V(79) ! JVRP(389) = dARP(211)/dV(57) JVRP(389) = V(86) ! JVRP(390) = dARP(211)/dV(86) JVRP(390) = V(57) ! JVRP(391) = dARP(212)/dV(66) JVRP(391) = V(86) ! JVRP(392) = dARP(212)/dV(86) JVRP(392) = V(66) ! JVRP(393) = dARP(213)/dV(64) JVRP(393) = V(86) ! JVRP(394) = dARP(213)/dV(86) JVRP(394) = V(64) ! JVRP(395) = dARP(214)/dV(59) JVRP(395) = V(86) ! JVRP(396) = dARP(214)/dV(86) JVRP(396) = V(59) ! JVRP(397) = dARP(215)/dV(54) JVRP(397) = V(86) ! JVRP(398) = dARP(215)/dV(86) JVRP(398) = V(54) ! JVRP(399) = dARP(216)/dV(65) JVRP(399) = V(86) ! JVRP(400) = dARP(216)/dV(86) JVRP(400) = V(65) ! JVRP(401) = dARP(217)/dV(51) JVRP(401) = V(86) ! JVRP(402) = dARP(217)/dV(86) JVRP(402) = V(51) ! JVRP(403) = dARP(218)/dV(55) JVRP(403) = V(86) ! JVRP(404) = dARP(218)/dV(86) JVRP(404) = V(55) ! JVRP(405) = dARP(219)/dV(67) JVRP(405) = V(86) ! JVRP(406) = dARP(219)/dV(86) JVRP(406) = V(67) ! JVRP(407) = dARP(220)/dV(63) JVRP(407) = V(86) ! JVRP(408) = dARP(220)/dV(86) JVRP(408) = V(63) ! JVRP(409) = dARP(221)/dV(53) JVRP(409) = V(86) ! JVRP(410) = dARP(221)/dV(86) JVRP(410) = V(53) ! JVRP(411) = dARP(222)/dV(74) JVRP(411) = V(86) ! JVRP(412) = dARP(222)/dV(86) JVRP(412) = V(74) ! JVRP(413) = dARP(223)/dV(74) JVRP(413) = V(86) ! JVRP(414) = dARP(223)/dV(86) JVRP(414) = V(74) ! JVRP(415) = dARP(224)/dV(81) JVRP(415) = V(86) ! JVRP(416) = dARP(224)/dV(86) JVRP(416) = V(81) ! JVRP(417) = dARP(225)/dV(86) JVRP(417) = V(88) ! JVRP(418) = dARP(225)/dV(88) JVRP(418) = V(86) ! JVRP(419) = dARP(226)/dV(78) JVRP(419) = V(86) ! JVRP(420) = dARP(226)/dV(86) JVRP(420) = V(78) ! JVRP(421) = dARP(227)/dV(86) JVRP(421) = F(5) ! JVRP(422) = dARP(228)/dV(87) JVRP(422) = 2*V(87) ! JVRP(423) = dARP(243)/dV(82) JVRP(423) = 1 ! JVRP(424) = dARP(244)/dV(89) JVRP(424) = 1 ! JVRP(425) = dARP(245)/dV(21) JVRP(425) = 1 ! JVRP(426) = dARP(246)/dV(56) JVRP(426) = 1 ! JVRP(427) = dARP(247)/dV(69) JVRP(427) = 1 ! JVRP(428) = dARP(248)/dV(25) JVRP(428) = 1 ! JVRP(429) = dARP(249)/dV(17) JVRP(429) = 1 ! JVRP(430) = dARP(250)/dV(44) JVRP(430) = 1 ! JVRP(431) = dARP(251)/dV(18) JVRP(431) = 1 ! JVRP(432) = dARP(252)/dV(73) JVRP(432) = 1 ! JVRP(433) = dARP(253)/dV(84) JVRP(433) = 1 ! JVRP(434) = dARP(254)/dV(82) JVRP(434) = 1 ! JVRP(435) = dARP(255)/dV(87) JVRP(435) = 1 ! JVRP(436) = dARP(256)/dV(25) JVRP(436) = 1 ! JVRP(437) = dARP(257)/dV(34) JVRP(437) = V(83) ! JVRP(438) = dARP(257)/dV(83) JVRP(438) = V(34) ! JVRP(439) = dARP(258)/dV(34) JVRP(439) = V(83) ! JVRP(440) = dARP(258)/dV(83) JVRP(440) = V(34) ! JVRP(441) = dARP(259)/dV(34) JVRP(441) = V(87) ! JVRP(442) = dARP(259)/dV(87) JVRP(442) = V(34) ! JVRP(443) = dARP(260)/dV(20) JVRP(443) = V(83) ! JVRP(444) = dARP(260)/dV(83) JVRP(444) = V(20) ! JVRP(445) = dARP(261)/dV(89) JVRP(445) = 1 ! JVRP(446) = dARP(262)/dV(82) JVRP(446) = 1 ! JVRP(447) = dARP(263)/dV(17) JVRP(447) = 1 ! JVRP(448) = dARP(264)/dV(28) JVRP(448) = 1 ! JVRP(449) = dARP(265)/dV(69) JVRP(449) = 1 ! JVRP(450) = dARP(266)/dV(69) JVRP(450) = 1 ! JVRP(451) = dARP(267)/dV(56) JVRP(451) = 1 ! JVRP(452) = dARP(268)/dV(24) JVRP(452) = 1 ! JVRP(453) = dARP(269)/dV(29) JVRP(453) = 1 ! JVRP(454) = dARP(270)/dV(87) JVRP(454) = 1 ! JVRP(455) = dARP(271)/dV(87) JVRP(455) = 1 ! JVRP(456) = dARP(272)/dV(25) JVRP(456) = 1 ! JVRP(457) = dARP(273)/dV(25) JVRP(457) = 1 ! JVRP(458) = dARP(274)/dV(29) JVRP(458) = 1 ! JVRP(459) = dARP(275)/dV(71) JVRP(459) = 1 ! JVRP(460) = dARP(276)/dV(71) JVRP(460) = 1 ! JVRP(461) = dARP(277)/dV(21) JVRP(461) = 1 ! JVRP(462) = dARP(278)/dV(68) JVRP(462) = 1 ! JVRP(463) = dARP(279)/dV(49) JVRP(463) = 1 ! JVRP(464) = dARP(280)/dV(49) JVRP(464) = 1 ! JVRP(465) = dARP(281)/dV(76) JVRP(465) = 1 ! JVRP(466) = dARP(283)/dV(50) JVRP(466) = 1 ! JVRP(467) = dARP(286)/dV(75) JVRP(467) = 1 ! JVRP(468) = dARP(287)/dV(75) JVRP(468) = 1 ! JVRP(469) = dARP(288)/dV(77) JVRP(469) = 1 ! JVRP(470) = dARP(289)/dV(77) JVRP(470) = 1 ! JVRP(471) = dARP(290)/dV(77) JVRP(471) = 1 ! JVRP(472) = dARP(291)/dV(80) JVRP(472) = 1 ! JVRP(473) = dARP(292)/dV(80) JVRP(473) = 1 ! JVRP(474) = dARP(293)/dV(61) JVRP(474) = 1 ! JVRP(475) = dARP(294)/dV(39) JVRP(475) = 1 ! JVRP(476) = dARP(295)/dV(38) JVRP(476) = 1 ! JVRP(477) = dARP(296)/dV(35) JVRP(477) = 1 ! JVRP(478) = dARP(297)/dV(31) JVRP(478) = 1 ! JVRP(479) = dARP(298)/dV(32) JVRP(479) = 1 ! JVRP(480) = dARP(299)/dV(30) JVRP(480) = 1 ! JVRP(481) = dARP(300)/dV(37) JVRP(481) = 1 ! JVRP(482) = dARP(301)/dV(33) JVRP(482) = 1 ! JVRP(483) = dARP(302)/dV(36) JVRP(483) = 1 ! JVRP(484) = dARP(304)/dV(45) JVRP(484) = 1 ! JVRP(485) = dARP(305)/dV(41) JVRP(485) = 1 ! JVRP(486) = dARP(306)/dV(43) JVRP(486) = 1 ! JVRP(487) = dARP(307)/dV(42) JVRP(487) = 1 ! JVRP(488) = dARP(308)/dV(40) JVRP(488) = 1 ! JVRP(489) = dARP(309)/dV(26) JVRP(489) = 1 ! JVRP(490) = dARP(310)/dV(73) JVRP(490) = 1 ! JVRP(491) = dARP(311)/dV(27) JVRP(491) = 1 END SUBROUTINE JacReactantProd ! End of JacReactantProd function ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ! Begin Derivative w.r.t. Rate Coefficients ! ------------------------------------------------------------------------------ ! Subroutine for the derivative of Fun with respect to rate coefficients ! ----------------------------------------------------------------------------- SUBROUTINE dFun_dRcoeff( V, F, NCOEFF, JCOEFF, DFDR ) USE gckpp_adj_Parameters USE gckpp_adj_StoichiomSP IMPLICIT NONE ! V - Concentrations of variable/radical/fixed species REAL(kind=dp) V(NVAR), F(NFIX) ! NCOEFF - the number of rate coefficients with respect to which we differentiate INTEGER NCOEFF ! JCOEFF - a vector of integers containing the indices of reactions (rate ! coefficients) with respect to which we differentiate INTEGER JCOEFF(NCOEFF) ! DFDR - a matrix containg derivative values; specifically, ! column j contains d Fun(1:NVAR) / d RCT( JCOEFF(j) ) ! for each 1 <= j <= NCOEFF ! This matrix is stored in a column-wise linearized format REAL(kind=dp) DFDR(NVAR*NCOEFF) ! Local vector with reactant products REAL(kind=dp) A_RPROD(NREACT) REAL(kind=dp) aj INTEGER i,j,k ! Compute the reactant products of all reactions CALL ReactantProd ( V, F, A_RPROD ) ! Compute the derivatives by multiplying column JCOEFF(j) of the stoichiometric matrix with A_RPROD DO j=1,NCOEFF ! Initialize the j-th column of derivative matrix to zero DO i=1,NVAR DFDR(i+NVAR*(j-1)) = 0.0_dp END DO ! Column JCOEFF(j) in the stoichiometric matrix times the ! reactant product of the JCOEFF(j)-th reaction ! give the j-th column of the derivative matrix aj = A_RPROD(JCOEFF(j)) DO k=CCOL_STOICM(JCOEFF(j)),CCOL_STOICM(JCOEFF(j)+1)-1 DFDR(IROW_STOICM(k)+NVAR*(j-1)) = STOICM(k)*aj END DO END DO END SUBROUTINE dFun_dRcoeff ! End Derivative w.r.t. Rate Coefficients ! Begin Jacobian Derivative w.r.t. Rate Coefficients ! ------------------------------------------------------------------------------ ! Subroutine for the derivative of Jac with respect to rate coefficients ! Times a user vector ! ----------------------------------------------------------------------------- SUBROUTINE dJac_dRcoeff( V, F, U, NCOEFF, JCOEFF, DJDR ) USE gckpp_adj_Parameters USE gckpp_adj_StoichiomSP IMPLICIT NONE ! V - Concentrations of variable/fixed species REAL(kind=dp) V(NVAR), F(NFIX) ! U - User-supplied Vector REAL(kind=dp) U(NVAR) ! NCOEFF - the number of rate coefficients with respect to which we differentiate INTEGER NCOEFF ! JCOEFF - a vector of integers containing the indices of reactions (rate ! coefficients) with respect to which we differentiate INTEGER JCOEFF(NCOEFF) ! DFDR - a matrix containg derivative values; specifically, ! column j contains d Jac(1:NVAR) / d RCT( JCOEFF(j) ) * U ! for each 1 <= j <= NCOEFF ! This matrix is stored in a column-wise linearized format REAL(kind=dp) DJDR(NVAR*NCOEFF) ! Local vector for Jacobian of reactant products REAL(kind=dp) JV_RPROD(NJVRP) REAL(kind=dp) aj INTEGER i,j,k ! Compute the Jacobian of all reactant products CALL JacReactantProd( V, F, JV_RPROD ) ! Compute the derivatives by multiplying column JCOEFF(j) of the stoichiometric matrix with A_PROD DO j=1,NCOEFF ! Initialize the j-th column of derivative matrix to zero DO i=1,NVAR DJDR(i+NVAR*(j-1)) = 0.0_dp END DO ! Column JCOEFF(j) in the stoichiometric matrix times the ! ( Gradient of reactant product of the JCOEFF(j)-th reaction X user vector ) ! give the j-th column of the derivative matrix ! ! Row JCOEFF(j) of JV_RPROD times the user vector aj = 0.0_dp DO k=CROW_JVRP(JCOEFF(j)),CROW_JVRP(JCOEFF(j)+1)-1 aj = aj + JV_RPROD(k)*U(ICOL_JVRP(k)) END DO ! Column JCOEFF(j) of Stoichiom. matrix times aj DO k=CCOL_STOICM(JCOEFF(j)),CCOL_STOICM(JCOEFF(j)+1)-1 DJDR(IROW_STOICM(k)+NVAR*(j-1)) = STOICM(k)*aj END DO END DO END SUBROUTINE dJac_dRcoeff ! End Jacobian Derivative w.r.t. Rate Coefficients END MODULE gckpp_adj_Stoichiom