MODULE crimech_Jacobian
  USE crimech_Parameters
  USE crimech_JacobianSP
  IMPLICIT NONE
CONTAINS
SUBROUTINE Jac_SP_Vec ( JVS, UV, JUV )
  REAL(kind=dp) :: JVS(LU_NONZERO)
  REAL(kind=dp) :: UV(NVAR)
  REAL(kind=dp) :: JUV(NVAR)
  JUV(1) = JVS(1)*UV(1)
  JUV(2) = JVS(2)*UV(2)
  JUV(3) = JVS(3)*UV(3)+JVS(4)*UV(4)+JVS(5)*UV(52)
  JUV(4) = JVS(6)*UV(4)+JVS(7)*UV(9)+JVS(8)*UV(127)+JVS(9)*UV(173)
  JUV(5) = JVS(10)*UV(5)+JVS(11)*UV(52)+JVS(12)*UV(109)+JVS(13)*UV(228)+JVS(14)*UV(232)
  JUV(6) = JVS(15)*UV(6)+JVS(16)*UV(41)+JVS(17)*UV(228)
  JUV(7) = JVS(18)*UV(7)+JVS(19)*UV(222)
  JUV(8) = JVS(20)*UV(8)+JVS(21)*UV(228)
  JUV(9) = JVS(22)*UV(9)+JVS(23)*UV(127)+JVS(24)*UV(228)
  JUV(10) = JVS(25)*UV(10)+JVS(26)*UV(228)
  JUV(11) = JVS(27)*UV(11)+JVS(28)*UV(228)
  JUV(12) = JVS(29)*UV(12)+JVS(30)*UV(228)
  JUV(13) = JVS(31)*UV(13)+JVS(32)*UV(228)
  JUV(14) = JVS(33)*UV(14)+JVS(34)*UV(228)
  JUV(15) = JVS(35)*UV(15)+JVS(36)*UV(228)
  JUV(16) = JVS(37)*UV(16)+JVS(38)*UV(228)
  JUV(17) = JVS(39)*UV(17)+JVS(40)*UV(228)
  JUV(18) = JVS(41)*UV(18)+JVS(42)*UV(228)
  JUV(19) = JVS(43)*UV(19)+JVS(44)*UV(228)
  JUV(20) = JVS(45)*UV(20)+JVS(46)*UV(228)
  JUV(21) = JVS(47)*UV(21)+JVS(48)*UV(228)
  JUV(22) = JVS(49)*UV(22)+JVS(50)*UV(228)
  JUV(23) = JVS(51)*UV(23)+JVS(52)*UV(228)
  JUV(24) = JVS(53)*UV(24)+JVS(54)*UV(228)
  JUV(25) = JVS(55)*UV(25)+JVS(56)*UV(228)
  JUV(26) = JVS(57)*UV(26)+JVS(58)*UV(228)
  JUV(27) = JVS(59)*UV(27)+JVS(60)*UV(228)
  JUV(28) = JVS(61)*UV(28)+JVS(62)*UV(228)
  JUV(29) = JVS(63)*UV(29)+JVS(64)*UV(228)
  JUV(30) = JVS(65)*UV(30)+JVS(66)*UV(228)
  JUV(31) = JVS(67)*UV(31)+JVS(68)*UV(228)
  JUV(32) = JVS(69)*UV(32)+JVS(70)*UV(229)+JVS(71)*UV(230)
  JUV(33) = JVS(72)*UV(33)+JVS(73)*UV(95)+JVS(74)*UV(228)
  JUV(34) = JVS(75)*UV(34)+JVS(76)*UV(211)+JVS(77)*UV(229)
  JUV(35) = JVS(78)*UV(35)+JVS(79)*UV(228)
  JUV(36) = JVS(80)*UV(36)+JVS(81)*UV(211)+JVS(82)*UV(228)
  JUV(37) = JVS(83)*UV(37)+JVS(84)*UV(81)+JVS(85)*UV(228)
  JUV(38) = JVS(86)*UV(38)+JVS(87)*UV(99)+JVS(88)*UV(100)+JVS(89)*UV(228)
  JUV(39) = JVS(90)*UV(39)+JVS(91)*UV(164)+JVS(92)*UV(222)+JVS(93)*UV(228)
  JUV(40) = JVS(94)*UV(40)+JVS(95)*UV(227)+JVS(96)*UV(228)
  JUV(41) = JVS(97)*UV(41)+JVS(98)*UV(108)+JVS(99)*UV(228)
  JUV(42) = JVS(100)*UV(42)+JVS(101)*UV(209)+JVS(102)*UV(228)
  JUV(43) = JVS(103)*UV(43)+JVS(104)*UV(156)+JVS(105)*UV(228)
  JUV(44) = JVS(106)*UV(44)+JVS(107)*UV(115)+JVS(108)*UV(228)
  JUV(45) = JVS(109)*UV(35)+JVS(110)*UV(45)+JVS(111)*UV(153)+JVS(112)*UV(175)+JVS(113)*UV(222)+JVS(114)*UV(228)
  JUV(46) = JVS(115)*UV(29)+JVS(116)*UV(46)+JVS(117)*UV(228)+JVS(118)*UV(230)
  JUV(47) = JVS(119)*UV(46)+JVS(120)*UV(47)+JVS(121)*UV(228)+JVS(122)*UV(229)+JVS(123)*UV(230)
  JUV(48) = JVS(124)*UV(30)+JVS(125)*UV(48)+JVS(126)*UV(228)+JVS(127)*UV(230)
  JUV(49) = JVS(128)*UV(48)+JVS(129)*UV(49)+JVS(130)*UV(228)+JVS(131)*UV(229)+JVS(132)*UV(230)
  JUV(50) = JVS(133)*UV(50)+JVS(134)*UV(215)+JVS(135)*UV(228)
  JUV(51) = JVS(136)*UV(51)+JVS(137)*UV(143)+JVS(138)*UV(162)+JVS(139)*UV(222)+JVS(140)*UV(228)
  JUV(52) = JVS(141)*UV(52)+JVS(142)*UV(171)+JVS(143)*UV(222)+JVS(144)*UV(229)+JVS(145)*UV(232)
  JUV(53) = JVS(146)*UV(53)+JVS(147)*UV(219)+JVS(148)*UV(228)+JVS(149)*UV(232)
  JUV(54) = JVS(150)*UV(54)+JVS(151)*UV(217)+JVS(152)*UV(227)+JVS(153)*UV(228)
  JUV(55) = JVS(154)*UV(55)+JVS(155)*UV(213)+JVS(156)*UV(227)+JVS(157)*UV(228)
  JUV(56) = JVS(158)*UV(56)+JVS(159)*UV(215)+JVS(160)*UV(228)+JVS(161)*UV(232)
  JUV(57) = JVS(162)*UV(57)+JVS(163)*UV(205)+JVS(164)*UV(228)+JVS(165)*UV(232)
  JUV(58) = JVS(166)*UV(58)+JVS(167)*UV(220)+JVS(168)*UV(228)+JVS(169)*UV(232)
  JUV(59) = JVS(170)*UV(59)+JVS(171)*UV(208)+JVS(172)*UV(228)+JVS(173)*UV(232)
  JUV(60) = JVS(174)*UV(60)+JVS(175)*UV(147)+JVS(176)*UV(228)+JVS(177)*UV(232)
  JUV(61) = JVS(178)*UV(61)+JVS(179)*UV(145)+JVS(180)*UV(228)+JVS(181)*UV(232)
  JUV(62) = JVS(182)*UV(62)+JVS(183)*UV(203)+JVS(184)*UV(228)+JVS(185)*UV(232)
  JUV(63) = JVS(186)*UV(63)+JVS(187)*UV(178)+JVS(188)*UV(227)+JVS(189)*UV(228)
  JUV(64) = JVS(190)*UV(64)+JVS(191)*UV(144)+JVS(192)*UV(228)+JVS(193)*UV(232)
  JUV(65) = JVS(194)*UV(65)+JVS(195)*UV(199)+JVS(196)*UV(227)+JVS(197)*UV(228)
  JUV(66) = JVS(198)*UV(66)+JVS(199)*UV(186)+JVS(200)*UV(227)+JVS(201)*UV(228)
  JUV(67) = JVS(202)*UV(67)+JVS(203)*UV(186)+JVS(204)*UV(228)+JVS(205)*UV(232)
  JUV(68) = JVS(206)*UV(68)+JVS(207)*UV(221)+JVS(208)*UV(228)+JVS(209)*UV(232)
  JUV(69) = JVS(210)*UV(69)+JVS(211)*UV(146)+JVS(212)*UV(228)+JVS(213)*UV(232)
  JUV(70) = JVS(214)*UV(70)+JVS(215)*UV(212)+JVS(216)*UV(228)+JVS(217)*UV(232)
  JUV(71) = JVS(218)*UV(71)+JVS(219)*UV(157)+JVS(220)*UV(228)+JVS(221)*UV(232)
  JUV(72) = JVS(222)*UV(72)+JVS(223)*UV(214)+JVS(224)*UV(228)+JVS(225)*UV(232)
  JUV(73) = JVS(226)*UV(73)+JVS(227)*UV(209)+JVS(228)*UV(228)+JVS(229)*UV(232)
  JUV(74) = JVS(230)*UV(74)+JVS(231)*UV(228)+JVS(232)*UV(229)+JVS(233)*UV(232)
  JUV(75) = JVS(234)*UV(75)+JVS(235)*UV(156)+JVS(236)*UV(228)+JVS(237)*UV(232)
  JUV(76) = JVS(238)*UV(76)+JVS(239)*UV(152)+JVS(240)*UV(154)+JVS(241)*UV(167)+JVS(242)*UV(182)+JVS(243)*UV(228)
  JUV(77) = JVS(244)*UV(77)+JVS(245)*UV(160)+JVS(246)*UV(228)
  JUV(78) = JVS(247)*UV(78)+JVS(248)*UV(170)+JVS(249)*UV(195)+JVS(250)*UV(227)+JVS(251)*UV(228)
  JUV(79) = JVS(252)*UV(79)+JVS(253)*UV(223)+JVS(254)*UV(227)+JVS(255)*UV(228)
  JUV(80) = JVS(256)*UV(80)+JVS(257)*UV(177)+JVS(258)*UV(223)+JVS(259)*UV(228)+JVS(260)*UV(232)
  JUV(81) = JVS(261)*UV(81)+JVS(262)*UV(218)+JVS(263)*UV(228)+JVS(264)*UV(232)
  JUV(82) = JVS(265)*UV(82)+JVS(266)*UV(213)+JVS(267)*UV(228)+JVS(268)*UV(232)
  JUV(83) = JVS(269)*UV(83)+JVS(270)*UV(166)+JVS(271)*UV(228)+JVS(272)*UV(232)
  JUV(84) = JVS(273)*UV(84)+JVS(274)*UV(191)+JVS(275)*UV(228)+JVS(276)*UV(232)
  JUV(85) = JVS(277)*UV(85)+JVS(278)*UV(156)+JVS(279)*UV(227)+JVS(280)*UV(228)
  JUV(86) = JVS(281)*UV(86)+JVS(282)*UV(197)+JVS(283)*UV(228)+JVS(284)*UV(232)
  JUV(87) = JVS(285)*UV(87)+JVS(286)*UV(198)+JVS(287)*UV(228)+JVS(288)*UV(229)
  JUV(88) = JVS(289)*UV(88)+JVS(290)*UV(188)+JVS(291)*UV(228)+JVS(292)*UV(232)
  JUV(89) = JVS(293)*UV(89)+JVS(294)*UV(163)+JVS(295)*UV(228)+JVS(296)*UV(232)
  JUV(90) = JVS(297)*UV(90)+JVS(298)*UV(211)+JVS(299)*UV(227)+JVS(300)*UV(228)
  JUV(91) = JVS(301)*UV(91)+JVS(302)*UV(181)+JVS(303)*UV(228)+JVS(304)*UV(232)
  JUV(92) = JVS(305)*UV(92)+JVS(306)*UV(209)+JVS(307)*UV(227)+JVS(308)*UV(228)
  JUV(93) = JVS(309)*UV(93)+JVS(310)*UV(204)+JVS(311)*UV(228)+JVS(312)*UV(232)
  JUV(94) = JVS(313)*UV(94)+JVS(314)*UV(183)+JVS(315)*UV(228)+JVS(316)*UV(232)
  JUV(95) = JVS(317)*UV(95)+JVS(318)*UV(212)+JVS(319)*UV(227)+JVS(320)*UV(228)
  JUV(96) = JVS(321)*UV(96)+JVS(322)*UV(184)+JVS(323)*UV(227)+JVS(324)*UV(228)
  JUV(97) = JVS(325)*UV(97)+JVS(326)*UV(214)+JVS(327)*UV(227)+JVS(328)*UV(228)
  JUV(98) = JVS(329)*UV(98)+JVS(330)*UV(215)+JVS(331)*UV(227)+JVS(332)*UV(228)
  JUV(99) = JVS(333)*UV(99)+JVS(334)*UV(210)+JVS(335)*UV(227)+JVS(336)*UV(228)
  JUV(100) = JVS(337)*UV(100)+JVS(338)*UV(210)+JVS(339)*UV(228)+JVS(340)*UV(232)
  JUV(101) = JVS(341)*UV(101)+JVS(342)*UV(211)+JVS(343)*UV(228)+JVS(344)*UV(232)
  JUV(102) = JVS(345)*UV(102)+JVS(346)*UV(207)+JVS(347)*UV(224)+JVS(348)*UV(227)+JVS(349)*UV(228)
  JUV(103) = JVS(350)*UV(103)+JVS(351)*UV(205)+JVS(352)*UV(227)+JVS(353)*UV(228)
  JUV(104) = JVS(354)*UV(104)+JVS(355)*UV(174)+JVS(356)*UV(228)+JVS(357)*UV(232)
  JUV(105) = JVS(358)*UV(105)+JVS(359)*UV(199)+JVS(360)*UV(228)+JVS(361)*UV(232)
  JUV(106) = JVS(362)*UV(106)+JVS(363)*UV(159)+JVS(364)*UV(164)+JVS(365)*UV(194)+JVS(366)*UV(201)+JVS(367)*UV(222)&
               &+JVS(368)*UV(228)+JVS(369)*UV(232)
  JUV(107) = JVS(370)*UV(72)+JVS(371)*UV(97)+JVS(372)*UV(107)+JVS(373)*UV(159)+JVS(374)*UV(214)+JVS(375)*UV(222)&
               &+JVS(376)*UV(227)+JVS(377)*UV(228)+JVS(378)*UV(230)
  JUV(108) = JVS(380)*UV(108)+JVS(381)*UV(228)+JVS(382)*UV(230)
  JUV(109) = JVS(383)*UV(41)+JVS(385)*UV(109)+JVS(386)*UV(228)+JVS(387)*UV(230)
  JUV(110) = JVS(388)*UV(108)+JVS(389)*UV(110)+JVS(390)*UV(227)+JVS(391)*UV(228)+JVS(392)*UV(230)
  JUV(111) = JVS(393)*UV(111)+JVS(394)*UV(203)+JVS(395)*UV(228)+JVS(396)*UV(229)
  JUV(112) = JVS(397)*UV(112)+JVS(398)*UV(191)+JVS(399)*UV(228)+JVS(400)*UV(229)
  JUV(113) = JVS(401)*UV(113)+JVS(402)*UV(178)+JVS(403)*UV(228)+JVS(404)*UV(232)
  JUV(114) = JVS(405)*UV(114)+JVS(406)*UV(198)+JVS(407)*UV(228)+JVS(408)*UV(232)
  JUV(115) = JVS(409)*UV(115)+JVS(410)*UV(216)+JVS(411)*UV(228)+JVS(412)*UV(232)
  JUV(116) = JVS(413)*UV(116)+JVS(414)*UV(197)+JVS(415)*UV(228)+JVS(416)*UV(229)
  JUV(117) = JVS(417)*UV(117)+JVS(418)*UV(217)+JVS(419)*UV(228)+JVS(420)*UV(232)
  JUV(118) = JVS(421)*UV(118)+JVS(422)*UV(163)+JVS(423)*UV(227)+JVS(424)*UV(228)
  JUV(119) = JVS(425)*UV(47)+JVS(426)*UV(119)+JVS(427)*UV(228)+JVS(428)*UV(229)+JVS(429)*UV(230)
  JUV(120) = JVS(430)*UV(120)+JVS(431)*UV(181)+JVS(432)*UV(227)+JVS(433)*UV(228)
  JUV(121) = JVS(434)*UV(49)+JVS(435)*UV(121)+JVS(436)*UV(228)+JVS(437)*UV(229)+JVS(438)*UV(230)
  JUV(122) = JVS(439)*UV(122)+JVS(440)*UV(221)+JVS(441)*UV(228)+JVS(442)*UV(229)
  JUV(123) = JVS(443)*UV(123)+JVS(444)*UV(190)+JVS(445)*UV(228)+JVS(446)*UV(232)
  JUV(124) = JVS(447)*UV(124)+JVS(448)*UV(184)+JVS(449)*UV(228)+JVS(450)*UV(232)
  JUV(125) = JVS(451)*UV(125)+JVS(452)*UV(168)+JVS(453)*UV(228)+JVS(454)*UV(232)
  JUV(126) = JVS(455)*UV(126)+JVS(456)*UV(219)+JVS(457)*UV(228)+JVS(458)*UV(229)
  JUV(127) = JVS(459)*UV(127)+JVS(460)*UV(171)+JVS(461)*UV(172)+JVS(462)*UV(173)+JVS(463)*UV(228)+JVS(464)*UV(229)
  JUV(128) = JVS(465)*UV(128)+JVS(466)*UV(174)+JVS(467)*UV(227)+JVS(468)*UV(228)
  JUV(129) = JVS(469)*UV(129)+JVS(470)*UV(170)+JVS(471)*UV(195)+JVS(472)*UV(228)+JVS(473)*UV(232)
  JUV(130) = JVS(474)*UV(130)+JVS(475)*UV(192)+JVS(476)*UV(202)+JVS(477)*UV(228)+JVS(478)*UV(232)
  JUV(131) = JVS(479)*UV(57)+JVS(480)*UV(103)+JVS(481)*UV(131)+JVS(484)*UV(228)
  JUV(132) = JVS(486)*UV(96)+JVS(487)*UV(124)+JVS(488)*UV(125)+JVS(489)*UV(132)+JVS(490)*UV(159)+JVS(491)*UV(168)&
               &+JVS(492)*UV(184)+JVS(493)*UV(222)+JVS(494)*UV(227)+JVS(495)*UV(228)+JVS(496)*UV(230)
  JUV(133) = JVS(498)*UV(133)+JVS(499)*UV(155)+JVS(500)*UV(200)+JVS(501)*UV(228)+JVS(502)*UV(232)
  JUV(134) = JVS(503)*UV(134)+JVS(504)*UV(225)+JVS(505)*UV(227)+JVS(506)*UV(228)
  JUV(135) = JVS(507)*UV(77)+JVS(508)*UV(135)+JVS(510)*UV(228)+JVS(511)*UV(230)
  JUV(136) = JVS(512)*UV(136)+JVS(513)*UV(176)+JVS(514)*UV(225)+JVS(515)*UV(228)+JVS(516)*UV(232)
  JUV(137) = JVS(517)*UV(137)+JVS(518)*UV(207)+JVS(519)*UV(224)+JVS(520)*UV(228)+JVS(521)*UV(232)
  JUV(138) = JVS(522)*UV(138)+JVS(523)*UV(192)+JVS(524)*UV(202)+JVS(525)*UV(227)+JVS(526)*UV(228)
  JUV(139) = JVS(527)*UV(79)+JVS(528)*UV(80)+JVS(529)*UV(139)+JVS(533)*UV(228)
  JUV(140) = JVS(535)*UV(55)+JVS(536)*UV(82)+JVS(537)*UV(140)+JVS(540)*UV(228)
  JUV(141) = JVS(542)*UV(141)+JVS(543)*UV(155)+JVS(544)*UV(200)+JVS(545)*UV(227)+JVS(546)*UV(228)
  JUV(142) = JVS(547)*UV(110)+JVS(548)*UV(142)+JVS(549)*UV(222)+JVS(550)*UV(227)+JVS(552)*UV(229)
  JUV(143) = JVS(554)*UV(143)+JVS(555)*UV(222)+JVS(556)*UV(228)+JVS(557)*UV(230)
  JUV(144) = JVS(558)*UV(144)+JVS(559)*UV(175)+JVS(560)*UV(227)+JVS(561)*UV(230)+JVS(562)*UV(232)
  JUV(145) = JVS(563)*UV(145)+JVS(564)*UV(162)+JVS(565)*UV(227)+JVS(566)*UV(230)+JVS(567)*UV(232)
  JUV(146) = JVS(568)*UV(146)+JVS(569)*UV(164)+JVS(570)*UV(227)+JVS(571)*UV(230)+JVS(572)*UV(232)
  JUV(147) = JVS(573)*UV(147)+JVS(574)*UV(153)+JVS(575)*UV(227)+JVS(576)*UV(230)+JVS(577)*UV(232)
  JUV(148) = JVS(578)*UV(59)+JVS(579)*UV(140)+JVS(580)*UV(148)+JVS(581)*UV(200)+JVS(582)*UV(202)+JVS(585)*UV(227)&
               &+JVS(586)*UV(228)+JVS(587)*UV(230)
  JUV(149) = JVS(589)*UV(134)+JVS(590)*UV(136)+JVS(591)*UV(149)+JVS(593)*UV(225)+JVS(594)*UV(227)+JVS(595)*UV(228)&
               &+JVS(596)*UV(230)
  JUV(150) = JVS(598)*UV(35)+JVS(599)*UV(89)+JVS(600)*UV(91)+JVS(601)*UV(118)+JVS(602)*UV(120)+JVS(603)*UV(150)+JVS(604)&
               &*UV(163)+JVS(605)*UV(181)+JVS(606)*UV(192)+JVS(607)*UV(202)+JVS(608)*UV(227)+JVS(609)*UV(228)+JVS(610)&
               &*UV(230)
  JUV(151) = JVS(612)*UV(64)+JVS(613)*UV(144)+JVS(614)*UV(151)+JVS(616)*UV(227)+JVS(617)*UV(228)+JVS(618)*UV(230)
  JUV(152) = JVS(620)*UV(104)+JVS(621)*UV(128)+JVS(622)*UV(152)+JVS(623)*UV(174)+JVS(624)*UV(227)+JVS(625)*UV(228)&
               &+JVS(626)*UV(230)
  JUV(153) = JVS(628)*UV(153)+JVS(629)*UV(222)+JVS(630)*UV(228)+JVS(631)*UV(230)
  JUV(154) = JVS(632)*UV(89)+JVS(633)*UV(118)+JVS(634)*UV(154)+JVS(635)*UV(163)+JVS(636)*UV(181)+JVS(637)*UV(202)&
               &+JVS(638)*UV(227)+JVS(639)*UV(228)+JVS(640)*UV(230)
  JUV(155) = JVS(642)*UV(20)+JVS(643)*UV(21)+JVS(644)*UV(22)+JVS(645)*UV(23)+JVS(646)*UV(27)+JVS(647)*UV(28)+JVS(648)&
               &*UV(155)+JVS(649)*UV(227)+JVS(650)*UV(228)+JVS(651)*UV(230)+JVS(652)*UV(232)
  JUV(156) = JVS(653)*UV(25)+JVS(654)*UV(156)+JVS(655)*UV(227)+JVS(656)*UV(228)+JVS(657)*UV(230)+JVS(658)*UV(232)
  JUV(157) = JVS(659)*UV(70)+JVS(660)*UV(71)+JVS(661)*UV(157)+JVS(662)*UV(212)+JVS(663)*UV(227)+JVS(664)*UV(228)&
               &+JVS(665)*UV(230)+JVS(666)*UV(232)
  JUV(158) = JVS(667)*UV(123)+JVS(668)*UV(158)+JVS(669)*UV(190)+JVS(670)*UV(227)+JVS(671)*UV(228)+JVS(672)*UV(230)
  JUV(159) = JVS(674)*UV(159)+JVS(675)*UV(222)+JVS(676)*UV(228)+JVS(677)*UV(230)
  JUV(160) = JVS(678)*UV(160)+JVS(679)*UV(204)+JVS(680)*UV(227)+JVS(681)*UV(228)
  JUV(161) = JVS(682)*UV(88)+JVS(683)*UV(151)+JVS(684)*UV(161)+JVS(686)*UV(188)+JVS(687)*UV(227)+JVS(688)*UV(228)&
               &+JVS(689)*UV(230)
  JUV(162) = JVS(691)*UV(162)+JVS(692)*UV(222)+JVS(693)*UV(228)+JVS(694)*UV(230)
  JUV(163) = JVS(695)*UV(29)+JVS(696)*UV(163)+JVS(697)*UV(227)+JVS(698)*UV(228)+JVS(699)*UV(230)+JVS(700)*UV(232)
  JUV(164) = JVS(701)*UV(164)+JVS(702)*UV(222)+JVS(703)*UV(228)+JVS(704)*UV(230)
  JUV(165) = JVS(705)*UV(66)+JVS(706)*UV(67)+JVS(707)*UV(69)+JVS(708)*UV(146)+JVS(709)*UV(164)+JVS(710)*UV(165)+JVS(711)&
               &*UV(186)+JVS(712)*UV(222)+JVS(713)*UV(227)+JVS(714)*UV(228)+JVS(715)*UV(230)
  JUV(166) = JVS(717)*UV(143)+JVS(718)*UV(166)+JVS(720)*UV(227)+JVS(722)*UV(230)+JVS(723)*UV(232)
  JUV(167) = JVS(724)*UV(133)+JVS(725)*UV(141)+JVS(726)*UV(155)+JVS(727)*UV(167)+JVS(728)*UV(192)+JVS(730)*UV(202)&
               &+JVS(731)*UV(227)+JVS(732)*UV(228)+JVS(733)*UV(230)
  JUV(168) = JVS(735)*UV(125)+JVS(736)*UV(159)+JVS(737)*UV(168)+JVS(739)*UV(227)+JVS(740)*UV(228)+JVS(741)*UV(230)&
               &+JVS(742)*UV(232)
  JUV(169) = JVS(743)*UV(102)+JVS(744)*UV(119)+JVS(745)*UV(137)+JVS(746)*UV(169)+JVS(748)*UV(224)+JVS(749)*UV(227)&
               &+JVS(750)*UV(228)+JVS(752)*UV(230)
  JUV(170) = JVS(754)*UV(103)+JVS(755)*UV(170)+JVS(757)*UV(227)+JVS(759)*UV(230)+JVS(760)*UV(232)
  JUV(171) = JVS(761)*UV(109)+JVS(762)*UV(171)+JVS(763)*UV(172)+JVS(764)*UV(222)+JVS(765)*UV(228)+JVS(766)*UV(229)&
               &+JVS(767)*UV(230)
  JUV(172) = JVS(768)*UV(142)+JVS(769)*UV(172)+JVS(770)*UV(222)+JVS(773)*UV(229)
  JUV(173) = JVS(775)*UV(7)+JVS(776)*UV(127)+JVS(779)*UV(173)+JVS(780)*UV(222)+JVS(781)*UV(227)+JVS(783)*UV(229)&
               &+JVS(784)*UV(230)
  JUV(174) = JVS(785)*UV(24)+JVS(786)*UV(174)+JVS(787)*UV(227)+JVS(788)*UV(228)+JVS(789)*UV(230)+JVS(790)*UV(232)
  JUV(175) = JVS(791)*UV(175)+JVS(792)*UV(222)+JVS(793)*UV(228)+JVS(794)*UV(230)
  JUV(176) = JVS(795)*UV(176)+JVS(796)*UV(214)+JVS(797)*UV(227)+JVS(798)*UV(230)+JVS(799)*UV(232)
  JUV(177) = JVS(800)*UV(177)+JVS(801)*UV(218)+JVS(802)*UV(227)+JVS(803)*UV(230)+JVS(804)*UV(232)
  JUV(178) = JVS(805)*UV(175)+JVS(806)*UV(178)+JVS(808)*UV(227)+JVS(809)*UV(228)+JVS(810)*UV(230)+JVS(811)*UV(232)
  JUV(179) = JVS(812)*UV(54)+JVS(813)*UV(116)+JVS(814)*UV(117)+JVS(815)*UV(179)+JVS(816)*UV(197)+JVS(817)*UV(198)&
               &+JVS(819)*UV(227)+JVS(820)*UV(228)+JVS(822)*UV(230)
  JUV(180) = JVS(824)*UV(78)+JVS(825)*UV(121)+JVS(826)*UV(122)+JVS(827)*UV(129)+JVS(829)*UV(180)+JVS(830)*UV(195)&
               &+JVS(833)*UV(227)+JVS(834)*UV(228)+JVS(836)*UV(230)
  JUV(181) = JVS(838)*UV(30)+JVS(839)*UV(181)+JVS(840)*UV(227)+JVS(841)*UV(228)+JVS(842)*UV(230)+JVS(843)*UV(232)
  JUV(182) = JVS(844)*UV(91)+JVS(845)*UV(120)+JVS(846)*UV(130)+JVS(847)*UV(138)+JVS(848)*UV(181)+JVS(849)*UV(182)&
               &+JVS(851)*UV(200)+JVS(853)*UV(227)+JVS(854)*UV(228)+JVS(855)*UV(230)
  JUV(183) = JVS(857)*UV(94)+JVS(858)*UV(135)+JVS(859)*UV(158)+JVS(861)*UV(183)+JVS(864)*UV(227)+JVS(865)*UV(228)&
               &+JVS(866)*UV(230)+JVS(867)*UV(232)
  JUV(184) = JVS(868)*UV(124)+JVS(869)*UV(159)+JVS(870)*UV(184)+JVS(872)*UV(227)+JVS(873)*UV(228)+JVS(874)*UV(230)&
               &+JVS(875)*UV(232)
  JUV(185) = JVS(876)*UV(46)+JVS(877)*UV(48)+JVS(878)*UV(108)+JVS(879)*UV(109)+JVS(880)*UV(119)+JVS(881)*UV(121)&
               &+JVS(882)*UV(135)+JVS(883)*UV(158)+JVS(885)*UV(165)+JVS(886)*UV(185)+JVS(889)*UV(194)+JVS(890)*UV(196)&
               &+JVS(891)*UV(201)+JVS(893)*UV(206)+JVS(895)*UV(226)+JVS(897)*UV(228)+JVS(898)*UV(229)+JVS(899)*UV(230)&
               &+JVS(900)*UV(231)
  JUV(186) = JVS(902)*UV(164)+JVS(903)*UV(186)+JVS(905)*UV(227)+JVS(906)*UV(228)+JVS(907)*UV(230)+JVS(908)*UV(232)
  JUV(187) = JVS(909)*UV(43)+JVS(910)*UV(75)+JVS(911)*UV(85)+JVS(912)*UV(93)+JVS(913)*UV(95)+JVS(914)*UV(99)+JVS(915)&
               &*UV(100)+JVS(916)*UV(122)+JVS(917)*UV(156)+JVS(918)*UV(160)+JVS(919)*UV(164)+JVS(920)*UV(184)+JVS(921)&
               &*UV(186)+JVS(922)*UV(187)+JVS(923)*UV(204)+JVS(924)*UV(210)+JVS(926)*UV(214)+JVS(928)*UV(222)+JVS(929)&
               &*UV(227)+JVS(930)*UV(228)+JVS(932)*UV(230)
  JUV(188) = JVS(934)*UV(151)+JVS(936)*UV(188)+JVS(938)*UV(227)+JVS(939)*UV(228)+JVS(940)*UV(230)+JVS(941)*UV(232)
  JUV(189) = JVS(942)*UV(35)+JVS(943)*UV(88)+JVS(944)*UV(94)+JVS(945)*UV(111)+JVS(946)*UV(112)+JVS(947)*UV(116)+JVS(948)&
               &*UV(126)+JVS(949)*UV(135)+JVS(950)*UV(143)+JVS(951)*UV(150)+JVS(952)*UV(151)+JVS(953)*UV(153)+JVS(954)&
               &*UV(158)+JVS(955)*UV(159)+JVS(957)*UV(162)+JVS(959)*UV(175)+JVS(961)*UV(183)+JVS(962)*UV(188)+JVS(963)&
               &*UV(189)+JVS(967)*UV(193)+JVS(968)*UV(194)+JVS(969)*UV(196)+JVS(971)*UV(198)+JVS(972)*UV(201)+JVS(976)&
               &*UV(206)+JVS(978)*UV(222)+JVS(979)*UV(226)+JVS(980)*UV(227)+JVS(981)*UV(228)+JVS(983)*UV(230)+JVS(984)&
               &*UV(231)
  JUV(190) = JVS(986)*UV(93)+JVS(987)*UV(123)+JVS(988)*UV(190)+JVS(989)*UV(204)+JVS(990)*UV(227)+JVS(991)*UV(228)&
               &+JVS(992)*UV(230)+JVS(993)*UV(232)
  JUV(191) = JVS(994)*UV(77)+JVS(995)*UV(84)+JVS(996)*UV(112)+JVS(998)*UV(191)+JVS(999)*UV(196)+JVS(1001)*UV(227)&
               &+JVS(1002)*UV(228)+JVS(1003)*UV(229)+JVS(1004)*UV(230)+JVS(1005)*UV(232)
  JUV(192) = JVS(1006)*UV(26)+JVS(1007)*UV(192)+JVS(1008)*UV(227)+JVS(1009)*UV(228)+JVS(1010)*UV(230)+JVS(1011)*UV(232)
  JUV(193) = JVS(1012)*UV(58)+JVS(1013)*UV(104)+JVS(1014)*UV(114)+JVS(1015)*UV(128)+JVS(1016)*UV(130)+JVS(1017)*UV(133)&
               &+JVS(1018)*UV(138)+JVS(1019)*UV(141)+JVS(1020)*UV(155)+JVS(1021)*UV(161)+JVS(1022)*UV(174)+JVS(1024)*UV(179)&
               &+JVS(1025)*UV(181)+JVS(1028)*UV(193)+JVS(1029)*UV(194)+JVS(1030)*UV(197)+JVS(1033)*UV(201)+JVS(1037)*UV(222)&
               &+JVS(1038)*UV(227)+JVS(1039)*UV(228)+JVS(1041)*UV(230)
  JUV(194) = JVS(1043)*UV(63)+JVS(1044)*UV(113)+JVS(1045)*UV(178)+JVS(1046)*UV(194)+JVS(1047)*UV(222)+JVS(1048)*UV(227)&
               &+JVS(1049)*UV(228)+JVS(1050)*UV(230)
  JUV(195) = JVS(1052)*UV(57)+JVS(1053)*UV(164)+JVS(1054)*UV(195)+JVS(1055)*UV(205)+JVS(1056)*UV(222)+JVS(1057)*UV(227)&
               &+JVS(1059)*UV(230)+JVS(1060)*UV(232)
  JUV(196) = JVS(1061)*UV(65)+JVS(1062)*UV(86)+JVS(1063)*UV(105)+JVS(1064)*UV(114)+JVS(1065)*UV(194)+JVS(1066)*UV(196)&
               &+JVS(1067)*UV(197)+JVS(1068)*UV(198)+JVS(1069)*UV(199)+JVS(1070)*UV(222)+JVS(1071)*UV(227)+JVS(1072)*UV(228)&
               &+JVS(1073)*UV(230)
  JUV(197) = JVS(1075)*UV(86)+JVS(1076)*UV(116)+JVS(1077)*UV(197)+JVS(1078)*UV(201)+JVS(1079)*UV(227)+JVS(1080)*UV(228)&
               &+JVS(1081)*UV(229)+JVS(1082)*UV(230)+JVS(1083)*UV(232)
  JUV(198) = JVS(1084)*UV(87)+JVS(1085)*UV(114)+JVS(1086)*UV(194)+JVS(1087)*UV(198)+JVS(1089)*UV(227)+JVS(1090)*UV(228)&
               &+JVS(1091)*UV(229)+JVS(1092)*UV(230)+JVS(1093)*UV(232)
  JUV(199) = JVS(1094)*UV(15)+JVS(1095)*UV(16)+JVS(1096)*UV(17)+JVS(1097)*UV(18)+JVS(1098)*UV(42)+JVS(1099)*UV(76)&
               &+JVS(1101)*UV(153)+JVS(1109)*UV(199)+JVS(1114)*UV(227)+JVS(1115)*UV(228)+JVS(1116)*UV(230)+JVS(1117)*UV(232)
  JUV(200) = JVS(1118)*UV(27)+JVS(1119)*UV(28)+JVS(1120)*UV(200)+JVS(1121)*UV(227)+JVS(1122)*UV(228)+JVS(1123)*UV(230)&
               &+JVS(1124)*UV(232)
  JUV(201) = JVS(1125)*UV(87)+JVS(1126)*UV(113)+JVS(1127)*UV(175)+JVS(1128)*UV(178)+JVS(1130)*UV(201)+JVS(1131)*UV(222)&
               &+JVS(1132)*UV(227)+JVS(1133)*UV(228)+JVS(1135)*UV(230)
  JUV(202) = JVS(1137)*UV(26)+JVS(1138)*UV(202)+JVS(1139)*UV(227)+JVS(1140)*UV(228)+JVS(1141)*UV(230)+JVS(1142)*UV(232)
  JUV(203) = JVS(1143)*UV(62)+JVS(1144)*UV(111)+JVS(1145)*UV(203)+JVS(1146)*UV(216)+JVS(1147)*UV(226)+JVS(1148)*UV(227)&
               &+JVS(1149)*UV(228)+JVS(1150)*UV(229)+JVS(1151)*UV(230)+JVS(1152)*UV(232)
  JUV(204) = JVS(1153)*UV(71)+JVS(1154)*UV(93)+JVS(1155)*UV(157)+JVS(1156)*UV(204)+JVS(1158)*UV(227)+JVS(1159)*UV(228)&
               &+JVS(1160)*UV(230)+JVS(1161)*UV(232)
  JUV(205) = JVS(1162)*UV(184)+JVS(1163)*UV(186)+JVS(1164)*UV(205)+JVS(1166)*UV(227)+JVS(1168)*UV(230)+JVS(1169)*UV(232)
  JUV(206) = JVS(1170)*UV(36)+JVS(1171)*UV(60)+JVS(1172)*UV(83)+JVS(1173)*UV(84)+JVS(1174)*UV(90)+JVS(1175)*UV(96)&
               &+JVS(1176)*UV(101)+JVS(1177)*UV(105)+JVS(1178)*UV(110)+JVS(1179)*UV(112)+JVS(1180)*UV(113)+JVS(1181)*UV(117)&
               &+JVS(1182)*UV(123)+JVS(1183)*UV(124)+JVS(1184)*UV(125)+JVS(1185)*UV(126)+JVS(1186)*UV(143)+JVS(1187)*UV(147)&
               &+JVS(1188)*UV(153)+JVS(1189)*UV(159)+JVS(1190)*UV(161)+JVS(1191)*UV(166)+JVS(1192)*UV(168)+JVS(1194)*UV(178)&
               &+JVS(1195)*UV(179)+JVS(1196)*UV(184)+JVS(1198)*UV(190)+JVS(1199)*UV(191)+JVS(1200)*UV(196)+JVS(1201)*UV(197)&
               &+JVS(1203)*UV(199)+JVS(1205)*UV(201)+JVS(1208)*UV(206)+JVS(1210)*UV(211)+JVS(1212)*UV(214)+JVS(1213)*UV(217)&
               &+JVS(1215)*UV(220)+JVS(1216)*UV(222)+JVS(1217)*UV(227)+JVS(1218)*UV(228)+JVS(1220)*UV(230)
  JUV(207) = JVS(1222)*UV(37)+JVS(1223)*UV(79)+JVS(1225)*UV(177)+JVS(1226)*UV(207)+JVS(1229)*UV(227)+JVS(1230)*UV(228)&
               &+JVS(1231)*UV(230)+JVS(1232)*UV(232)
  JUV(208) = JVS(1233)*UV(31)+JVS(1234)*UV(149)+JVS(1236)*UV(208)+JVS(1239)*UV(227)+JVS(1240)*UV(228)+JVS(1241)*UV(230)&
               &+JVS(1242)*UV(232)
  JUV(209) = JVS(1243)*UV(8)+JVS(1244)*UV(14)+JVS(1245)*UV(31)+JVS(1246)*UV(58)+JVS(1247)*UV(62)+JVS(1248)*UV(134)&
               &+JVS(1249)*UV(136)+JVS(1250)*UV(149)+JVS(1251)*UV(154)+JVS(1253)*UV(167)+JVS(1259)*UV(203)+JVS(1260)*UV(209)&
               &+JVS(1264)*UV(225)+JVS(1265)*UV(226)+JVS(1266)*UV(227)+JVS(1267)*UV(228)+JVS(1269)*UV(230)+JVS(1270)*UV(232)
  JUV(210) = JVS(1271)*UV(107)+JVS(1273)*UV(210)+JVS(1276)*UV(227)+JVS(1277)*UV(228)+JVS(1278)*UV(230)+JVS(1279)*UV(232)
  JUV(211) = JVS(1280)*UV(11)+JVS(1281)*UV(12)+JVS(1282)*UV(13)+JVS(1283)*UV(19)+JVS(1284)*UV(34)+JVS(1285)*UV(41)&
               &+JVS(1286)*UV(51)+JVS(1287)*UV(52)+JVS(1288)*UV(53)+JVS(1289)*UV(101)+JVS(1291)*UV(143)+JVS(1292)*UV(162)&
               &+JVS(1293)*UV(171)+JVS(1294)*UV(172)+JVS(1295)*UV(182)+JVS(1296)*UV(187)+JVS(1302)*UV(211)+JVS(1305)*UV(219)&
               &+JVS(1307)*UV(222)+JVS(1308)*UV(227)+JVS(1309)*UV(228)+JVS(1310)*UV(229)+JVS(1311)*UV(230)+JVS(1312)*UV(231)&
               &+JVS(1313)*UV(232)
  JUV(212) = JVS(1314)*UV(39)+JVS(1315)*UV(68)+JVS(1316)*UV(70)+JVS(1318)*UV(212)+JVS(1319)*UV(221)+JVS(1321)*UV(227)&
               &+JVS(1322)*UV(228)+JVS(1323)*UV(230)+JVS(1324)*UV(232)
  JUV(213) = JVS(1325)*UV(38)+JVS(1326)*UV(44)+JVS(1330)*UV(162)+JVS(1331)*UV(176)+JVS(1333)*UV(213)+JVS(1337)*UV(227)&
               &+JVS(1338)*UV(228)+JVS(1339)*UV(230)+JVS(1340)*UV(232)
  JUV(214) = JVS(1341)*UV(132)+JVS(1342)*UV(159)+JVS(1345)*UV(214)+JVS(1346)*UV(222)+JVS(1347)*UV(227)+JVS(1348)*UV(228)&
               &+JVS(1349)*UV(230)+JVS(1350)*UV(232)
  JUV(215) = JVS(1351)*UV(25)+JVS(1352)*UV(59)+JVS(1353)*UV(131)+JVS(1354)*UV(139)+JVS(1355)*UV(152)+JVS(1358)*UV(182)&
               &+JVS(1365)*UV(215)+JVS(1370)*UV(227)+JVS(1371)*UV(228)+JVS(1372)*UV(230)+JVS(1373)*UV(232)
  JUV(216) = JVS(1374)*UV(139)+JVS(1376)*UV(216)+JVS(1379)*UV(227)+JVS(1380)*UV(228)+JVS(1381)*UV(230)+JVS(1382)*UV(232)
  JUV(217) = JVS(1383)*UV(43)+JVS(1384)*UV(50)+JVS(1385)*UV(77)+JVS(1386)*UV(143)+JVS(1387)*UV(148)+JVS(1399)*UV(217)&
               &+JVS(1405)*UV(227)+JVS(1406)*UV(228)+JVS(1407)*UV(230)+JVS(1408)*UV(232)
  JUV(218) = JVS(1409)*UV(131)+JVS(1411)*UV(218)+JVS(1413)*UV(227)+JVS(1414)*UV(228)+JVS(1415)*UV(230)+JVS(1416)*UV(232)
  JUV(219) = JVS(1417)*UV(31)+JVS(1418)*UV(44)+JVS(1419)*UV(53)+JVS(1420)*UV(86)+JVS(1422)*UV(126)+JVS(1423)*UV(139)&
               &+JVS(1424)*UV(140)+JVS(1425)*UV(148)+JVS(1426)*UV(149)+JVS(1427)*UV(158)+JVS(1428)*UV(161)+JVS(1432)*UV(179)&
               &+JVS(1433)*UV(187)+JVS(1436)*UV(193)+JVS(1437)*UV(194)+JVS(1438)*UV(197)+JVS(1439)*UV(198)+JVS(1441)*UV(201)&
               &+JVS(1444)*UV(208)+JVS(1452)*UV(219)+JVS(1453)*UV(220)+JVS(1455)*UV(222)+JVS(1458)*UV(227)+JVS(1459)*UV(228)&
               &+JVS(1460)*UV(229)+JVS(1461)*UV(230)+JVS(1462)*UV(231)+JVS(1463)*UV(232)
  JUV(220) = JVS(1464)*UV(37)+JVS(1465)*UV(44)+JVS(1467)*UV(94)+JVS(1469)*UV(131)+JVS(1470)*UV(169)+JVS(1471)*UV(180)&
               &+JVS(1472)*UV(183)+JVS(1473)*UV(187)+JVS(1484)*UV(220)+JVS(1489)*UV(227)+JVS(1490)*UV(228)+JVS(1492)*UV(230)&
               &+JVS(1493)*UV(232)
  JUV(221) = JVS(1494)*UV(68)+JVS(1495)*UV(122)+JVS(1496)*UV(165)+JVS(1498)*UV(221)+JVS(1500)*UV(227)+JVS(1501)*UV(228)&
               &+JVS(1502)*UV(229)+JVS(1503)*UV(230)+JVS(1504)*UV(232)
  JUV(222) = JVS(1505)*UV(142)+JVS(1506)*UV(143)+JVS(1507)*UV(153)+JVS(1508)*UV(159)+JVS(1509)*UV(162)+JVS(1510)*UV(164)&
               &+JVS(1511)*UV(171)+JVS(1512)*UV(172)+JVS(1513)*UV(173)+JVS(1514)*UV(175)+JVS(1515)*UV(194)+JVS(1516)*UV(201)&
               &+JVS(1517)*UV(222)+JVS(1518)*UV(227)+JVS(1519)*UV(228)+JVS(1520)*UV(229)+JVS(1522)*UV(232)
  JUV(223) = JVS(1523)*UV(81)+JVS(1524)*UV(152)+JVS(1526)*UV(180)+JVS(1532)*UV(223)+JVS(1533)*UV(227)+JVS(1534)*UV(228)&
               &+JVS(1536)*UV(230)+JVS(1537)*UV(232)
  JUV(224) = JVS(1538)*UV(33)+JVS(1539)*UV(80)+JVS(1546)*UV(223)+JVS(1547)*UV(224)+JVS(1548)*UV(227)+JVS(1549)*UV(228)&
               &+JVS(1551)*UV(230)+JVS(1552)*UV(232)
  JUV(225) = JVS(1553)*UV(10)+JVS(1554)*UV(100)+JVS(1555)*UV(115)+JVS(1556)*UV(167)+JVS(1557)*UV(169)+JVS(1562)*UV(210)&
               &+JVS(1569)*UV(225)+JVS(1570)*UV(227)+JVS(1571)*UV(228)+JVS(1573)*UV(230)+JVS(1574)*UV(232)
  JUV(226) = JVS(1575)*UV(50)+JVS(1576)*UV(56)+JVS(1577)*UV(98)+JVS(1578)*UV(129)+JVS(1579)*UV(137)+JVS(1580)*UV(170)&
               &+JVS(1581)*UV(180)+JVS(1584)*UV(207)+JVS(1585)*UV(215)+JVS(1592)*UV(226)+JVS(1593)*UV(227)+JVS(1594)*UV(228)&
               &+JVS(1596)*UV(230)
  JUV(227) = JVS(1598)*UV(40)+JVS(1599)*UV(110)+JVS(1600)*UV(142)+JVS(1601)*UV(144)+JVS(1602)*UV(145)+JVS(1603)*UV(146)&
               &+JVS(1604)*UV(147)+JVS(1606)*UV(155)+JVS(1607)*UV(156)+JVS(1608)*UV(157)+JVS(1610)*UV(163)+JVS(1612)*UV(166)&
               &+JVS(1613)*UV(168)+JVS(1614)*UV(170)+JVS(1615)*UV(171)+JVS(1616)*UV(172)+JVS(1617)*UV(173)+JVS(1618)*UV(174)&
               &+JVS(1620)*UV(176)+JVS(1621)*UV(177)+JVS(1622)*UV(178)+JVS(1623)*UV(181)+JVS(1624)*UV(183)+JVS(1625)*UV(184)&
               &+JVS(1626)*UV(186)+JVS(1627)*UV(188)+JVS(1628)*UV(190)+JVS(1629)*UV(191)+JVS(1630)*UV(192)+JVS(1631)*UV(195)&
               &+JVS(1633)*UV(197)+JVS(1634)*UV(198)+JVS(1635)*UV(199)+JVS(1636)*UV(200)+JVS(1638)*UV(202)+JVS(1639)*UV(203)&
               &+JVS(1640)*UV(204)+JVS(1641)*UV(205)+JVS(1642)*UV(207)+JVS(1643)*UV(208)+JVS(1644)*UV(209)+JVS(1645)*UV(210)&
               &+JVS(1646)*UV(211)+JVS(1647)*UV(212)+JVS(1648)*UV(213)+JVS(1649)*UV(214)+JVS(1650)*UV(215)+JVS(1651)*UV(216)&
               &+JVS(1652)*UV(217)+JVS(1653)*UV(218)+JVS(1654)*UV(219)+JVS(1655)*UV(220)+JVS(1656)*UV(221)+JVS(1657)*UV(222)&
               &+JVS(1658)*UV(223)+JVS(1659)*UV(224)+JVS(1660)*UV(225)+JVS(1662)*UV(227)+JVS(1663)*UV(228)+JVS(1664)*UV(229)&
               &+JVS(1665)*UV(230)+JVS(1667)*UV(232)
  JUV(228) = JVS(1668)*UV(7)+JVS(1669)*UV(8)+JVS(1670)*UV(10)+JVS(1671)*UV(11)+JVS(1672)*UV(12)+JVS(1673)*UV(13)&
               &+JVS(1674)*UV(14)+JVS(1675)*UV(15)+JVS(1676)*UV(16)+JVS(1677)*UV(17)+JVS(1678)*UV(18)+JVS(1679)*UV(19)&
               &+JVS(1680)*UV(20)+JVS(1681)*UV(21)+JVS(1682)*UV(22)+JVS(1683)*UV(23)+JVS(1684)*UV(24)+JVS(1685)*UV(25)&
               &+JVS(1686)*UV(26)+JVS(1687)*UV(27)+JVS(1688)*UV(28)+JVS(1689)*UV(29)+JVS(1690)*UV(30)+JVS(1691)*UV(31)&
               &+JVS(1692)*UV(33)+JVS(1693)*UV(35)+JVS(1694)*UV(36)+JVS(1695)*UV(37)+JVS(1696)*UV(38)+JVS(1697)*UV(39)&
               &+JVS(1698)*UV(40)+JVS(1699)*UV(41)+JVS(1700)*UV(42)+JVS(1701)*UV(43)+JVS(1702)*UV(44)+JVS(1703)*UV(45)&
               &+JVS(1704)*UV(46)+JVS(1705)*UV(48)+JVS(1706)*UV(50)+JVS(1707)*UV(51)+JVS(1708)*UV(53)+JVS(1709)*UV(54)&
               &+JVS(1710)*UV(55)+JVS(1711)*UV(56)+JVS(1712)*UV(57)+JVS(1713)*UV(58)+JVS(1714)*UV(59)+JVS(1715)*UV(60)&
               &+JVS(1716)*UV(61)+JVS(1717)*UV(62)+JVS(1718)*UV(63)+JVS(1719)*UV(64)+JVS(1720)*UV(65)+JVS(1721)*UV(66)&
               &+JVS(1722)*UV(67)+JVS(1723)*UV(68)+JVS(1724)*UV(69)+JVS(1725)*UV(70)+JVS(1726)*UV(71)+JVS(1727)*UV(72)&
               &+JVS(1728)*UV(73)+JVS(1729)*UV(74)+JVS(1730)*UV(75)+JVS(1731)*UV(76)+JVS(1732)*UV(77)+JVS(1733)*UV(78)&
               &+JVS(1734)*UV(79)+JVS(1735)*UV(80)+JVS(1736)*UV(81)+JVS(1737)*UV(82)+JVS(1738)*UV(83)+JVS(1739)*UV(84)&
               &+JVS(1740)*UV(85)+JVS(1741)*UV(86)+JVS(1742)*UV(87)+JVS(1743)*UV(88)+JVS(1744)*UV(89)+JVS(1745)*UV(90)&
               &+JVS(1746)*UV(91)+JVS(1747)*UV(92)+JVS(1748)*UV(93)+JVS(1749)*UV(94)+JVS(1750)*UV(95)+JVS(1751)*UV(96)&
               &+JVS(1752)*UV(97)+JVS(1753)*UV(98)+JVS(1754)*UV(99)+JVS(1755)*UV(100)+JVS(1756)*UV(101)+JVS(1757)*UV(102)&
               &+JVS(1758)*UV(103)+JVS(1759)*UV(104)+JVS(1760)*UV(105)+JVS(1761)*UV(106)+JVS(1762)*UV(107)+JVS(1763)*UV(108)&
               &+JVS(1764)*UV(109)+JVS(1765)*UV(111)+JVS(1766)*UV(112)+JVS(1767)*UV(113)+JVS(1768)*UV(114)+JVS(1769)*UV(115)&
               &+JVS(1770)*UV(116)+JVS(1771)*UV(117)+JVS(1772)*UV(118)+JVS(1773)*UV(119)+JVS(1774)*UV(120)+JVS(1775)*UV(121)&
               &+JVS(1776)*UV(122)+JVS(1777)*UV(123)+JVS(1778)*UV(124)+JVS(1779)*UV(125)+JVS(1780)*UV(126)+JVS(1781)*UV(127)&
               &+JVS(1782)*UV(128)+JVS(1783)*UV(129)+JVS(1784)*UV(130)+JVS(1785)*UV(131)+JVS(1786)*UV(132)+JVS(1787)*UV(133)&
               &+JVS(1788)*UV(134)+JVS(1789)*UV(135)+JVS(1790)*UV(136)+JVS(1791)*UV(137)+JVS(1792)*UV(138)+JVS(1793)*UV(139)&
               &+JVS(1794)*UV(140)+JVS(1795)*UV(141)+JVS(1796)*UV(143)+JVS(1801)*UV(148)+JVS(1802)*UV(149)+JVS(1803)*UV(150)&
               &+JVS(1804)*UV(151)+JVS(1805)*UV(152)+JVS(1806)*UV(153)+JVS(1807)*UV(154)+JVS(1811)*UV(158)+JVS(1812)*UV(159)&
               &+JVS(1813)*UV(160)+JVS(1814)*UV(161)+JVS(1815)*UV(162)+JVS(1817)*UV(164)+JVS(1818)*UV(165)+JVS(1820)*UV(167)&
               &+JVS(1822)*UV(169)+JVS(1828)*UV(175)+JVS(1832)*UV(179)+JVS(1833)*UV(180)+JVS(1835)*UV(182)+JVS(1838)*UV(185)&
               &+JVS(1840)*UV(187)+JVS(1842)*UV(189)+JVS(1846)*UV(193)+JVS(1847)*UV(194)+JVS(1849)*UV(196)+JVS(1854)*UV(201)&
               &+JVS(1859)*UV(206)+JVS(1875)*UV(222)+JVS(1879)*UV(226)+JVS(1880)*UV(227)+JVS(1881)*UV(228)+JVS(1882)*UV(229)&
               &+JVS(1883)*UV(230)+JVS(1884)*UV(231)+JVS(1885)*UV(232)
  JUV(229) = JVS(1886)*UV(32)+JVS(1887)*UV(34)+JVS(1888)*UV(40)+JVS(1889)*UV(47)+JVS(1890)*UV(49)+JVS(1891)*UV(54)&
               &+JVS(1892)*UV(55)+JVS(1893)*UV(60)+JVS(1894)*UV(61)+JVS(1895)*UV(63)+JVS(1896)*UV(65)+JVS(1897)*UV(66)&
               &+JVS(1898)*UV(69)+JVS(1899)*UV(74)+JVS(1900)*UV(78)+JVS(1901)*UV(79)+JVS(1902)*UV(83)+JVS(1903)*UV(85)&
               &+JVS(1904)*UV(87)+JVS(1905)*UV(90)+JVS(1906)*UV(92)+JVS(1907)*UV(95)+JVS(1908)*UV(96)+JVS(1909)*UV(97)&
               &+JVS(1910)*UV(98)+JVS(1911)*UV(99)+JVS(1912)*UV(102)+JVS(1913)*UV(103)+JVS(1914)*UV(110)+JVS(1915)*UV(111)&
               &+JVS(1916)*UV(112)+JVS(1917)*UV(116)+JVS(1918)*UV(118)+JVS(1919)*UV(119)+JVS(1920)*UV(120)+JVS(1921)*UV(121)&
               &+JVS(1922)*UV(122)+JVS(1923)*UV(125)+JVS(1924)*UV(126)+JVS(1925)*UV(128)+JVS(1926)*UV(134)+JVS(1927)*UV(138)&
               &+JVS(1928)*UV(141)+JVS(1929)*UV(142)+JVS(1930)*UV(144)+JVS(1931)*UV(145)+JVS(1932)*UV(146)+JVS(1933)*UV(147)&
               &+JVS(1935)*UV(155)+JVS(1936)*UV(156)+JVS(1937)*UV(157)+JVS(1938)*UV(160)+JVS(1939)*UV(161)+JVS(1941)*UV(163)&
               &+JVS(1943)*UV(166)+JVS(1944)*UV(168)+JVS(1945)*UV(170)+JVS(1946)*UV(171)+JVS(1947)*UV(172)+JVS(1948)*UV(173)&
               &+JVS(1949)*UV(174)+JVS(1951)*UV(176)+JVS(1952)*UV(177)+JVS(1953)*UV(178)+JVS(1954)*UV(181)+JVS(1955)*UV(183)&
               &+JVS(1956)*UV(184)+JVS(1957)*UV(185)+JVS(1958)*UV(186)+JVS(1959)*UV(188)+JVS(1960)*UV(190)+JVS(1961)*UV(191)&
               &+JVS(1962)*UV(192)+JVS(1964)*UV(195)+JVS(1966)*UV(197)+JVS(1967)*UV(198)+JVS(1968)*UV(199)+JVS(1969)*UV(200)&
               &+JVS(1971)*UV(202)+JVS(1972)*UV(203)+JVS(1973)*UV(204)+JVS(1974)*UV(205)+JVS(1976)*UV(207)+JVS(1977)*UV(208)&
               &+JVS(1978)*UV(209)+JVS(1979)*UV(210)+JVS(1980)*UV(211)+JVS(1981)*UV(212)+JVS(1982)*UV(213)+JVS(1983)*UV(214)&
               &+JVS(1984)*UV(215)+JVS(1985)*UV(216)+JVS(1986)*UV(217)+JVS(1987)*UV(218)+JVS(1988)*UV(219)+JVS(1989)*UV(220)&
               &+JVS(1990)*UV(221)+JVS(1991)*UV(222)+JVS(1992)*UV(223)+JVS(1993)*UV(224)+JVS(1994)*UV(225)+JVS(1996)*UV(227)&
               &+JVS(1997)*UV(228)+JVS(1998)*UV(229)+JVS(1999)*UV(230)+JVS(2001)*UV(232)
  JUV(230) = JVS(2002)*UV(32)+JVS(2003)*UV(46)+JVS(2004)*UV(48)+JVS(2005)*UV(108)+JVS(2006)*UV(109)+JVS(2007)*UV(119)&
               &+JVS(2008)*UV(121)+JVS(2009)*UV(135)+JVS(2010)*UV(143)+JVS(2011)*UV(144)+JVS(2012)*UV(145)+JVS(2013)*UV(146)&
               &+JVS(2014)*UV(147)+JVS(2015)*UV(153)+JVS(2016)*UV(155)+JVS(2017)*UV(156)+JVS(2018)*UV(157)+JVS(2019)*UV(158)&
               &+JVS(2020)*UV(159)+JVS(2022)*UV(162)+JVS(2023)*UV(163)+JVS(2024)*UV(164)+JVS(2025)*UV(165)+JVS(2026)*UV(166)&
               &+JVS(2027)*UV(168)+JVS(2028)*UV(170)+JVS(2029)*UV(173)+JVS(2030)*UV(174)+JVS(2031)*UV(175)+JVS(2032)*UV(176)&
               &+JVS(2033)*UV(177)+JVS(2034)*UV(178)+JVS(2035)*UV(181)+JVS(2036)*UV(183)+JVS(2037)*UV(184)+JVS(2038)*UV(185)&
               &+JVS(2039)*UV(186)+JVS(2040)*UV(188)+JVS(2041)*UV(190)+JVS(2042)*UV(191)+JVS(2043)*UV(192)+JVS(2044)*UV(194)&
               &+JVS(2045)*UV(195)+JVS(2046)*UV(196)+JVS(2047)*UV(197)+JVS(2048)*UV(198)+JVS(2049)*UV(199)+JVS(2050)*UV(200)&
               &+JVS(2051)*UV(201)+JVS(2052)*UV(202)+JVS(2053)*UV(203)+JVS(2054)*UV(204)+JVS(2055)*UV(205)+JVS(2056)*UV(206)&
               &+JVS(2057)*UV(207)+JVS(2058)*UV(208)+JVS(2059)*UV(209)+JVS(2060)*UV(210)+JVS(2061)*UV(211)+JVS(2062)*UV(212)&
               &+JVS(2063)*UV(213)+JVS(2064)*UV(214)+JVS(2065)*UV(215)+JVS(2066)*UV(216)+JVS(2067)*UV(217)+JVS(2068)*UV(218)&
               &+JVS(2069)*UV(219)+JVS(2070)*UV(220)+JVS(2071)*UV(221)+JVS(2072)*UV(222)+JVS(2073)*UV(223)+JVS(2074)*UV(224)&
               &+JVS(2075)*UV(225)+JVS(2076)*UV(226)+JVS(2077)*UV(227)+JVS(2078)*UV(228)+JVS(2079)*UV(229)+JVS(2080)*UV(230)&
               &+JVS(2081)*UV(231)+JVS(2082)*UV(232)
  JUV(231) = JVS(2083)*UV(42)+JVS(2084)*UV(61)+JVS(2085)*UV(73)+JVS(2086)*UV(82)+JVS(2087)*UV(83)+JVS(2088)*UV(92)&
               &+JVS(2089)*UV(111)+JVS(2090)*UV(117)+JVS(2091)*UV(134)+JVS(2092)*UV(136)+JVS(2093)*UV(137)+JVS(2094)*UV(140)&
               &+JVS(2095)*UV(145)+JVS(2096)*UV(162)+JVS(2097)*UV(166)+JVS(2098)*UV(169)+JVS(2101)*UV(207)+JVS(2102)*UV(208)&
               &+JVS(2103)*UV(209)+JVS(2104)*UV(213)+JVS(2106)*UV(216)+JVS(2107)*UV(217)+JVS(2111)*UV(222)+JVS(2114)*UV(225)&
               &+JVS(2116)*UV(227)+JVS(2117)*UV(228)+JVS(2119)*UV(230)+JVS(2120)*UV(231)
  JUV(232) = JVS(2122)*UV(9)+JVS(2123)*UV(29)+JVS(2124)*UV(30)+JVS(2125)*UV(35)+JVS(2126)*UV(36)+JVS(2127)*UV(42)&
               &+JVS(2128)*UV(43)+JVS(2129)*UV(45)+JVS(2130)*UV(50)+JVS(2131)*UV(52)+JVS(2132)*UV(56)+JVS(2133)*UV(64)&
               &+JVS(2134)*UV(67)+JVS(2135)*UV(72)+JVS(2136)*UV(73)+JVS(2137)*UV(74)+JVS(2138)*UV(75)+JVS(2139)*UV(77)&
               &+JVS(2140)*UV(82)+JVS(2141)*UV(84)+JVS(2142)*UV(85)+JVS(2143)*UV(88)+JVS(2144)*UV(89)+JVS(2145)*UV(90)&
               &+JVS(2146)*UV(91)+JVS(2147)*UV(92)+JVS(2148)*UV(97)+JVS(2149)*UV(98)+JVS(2150)*UV(101)+JVS(2151)*UV(104)&
               &+JVS(2152)*UV(105)+JVS(2153)*UV(106)+JVS(2154)*UV(108)+JVS(2155)*UV(109)+JVS(2156)*UV(113)+JVS(2157)*UV(114)&
               &+JVS(2158)*UV(117)+JVS(2159)*UV(118)+JVS(2160)*UV(120)+JVS(2161)*UV(123)+JVS(2162)*UV(124)+JVS(2164)*UV(128)&
               &+JVS(2165)*UV(129)+JVS(2166)*UV(130)+JVS(2167)*UV(133)+JVS(2168)*UV(134)+JVS(2169)*UV(135)+JVS(2170)*UV(136)&
               &+JVS(2171)*UV(137)+JVS(2172)*UV(138)+JVS(2173)*UV(140)+JVS(2174)*UV(141)+JVS(2175)*UV(144)+JVS(2176)*UV(145)&
               &+JVS(2177)*UV(146)+JVS(2178)*UV(147)+JVS(2179)*UV(150)+JVS(2180)*UV(151)+JVS(2181)*UV(152)+JVS(2182)*UV(153)&
               &+JVS(2183)*UV(154)+JVS(2184)*UV(155)+JVS(2185)*UV(156)+JVS(2186)*UV(157)+JVS(2190)*UV(163)+JVS(2192)*UV(165)&
               &+JVS(2193)*UV(166)+JVS(2194)*UV(167)+JVS(2195)*UV(168)+JVS(2196)*UV(169)+JVS(2197)*UV(170)+JVS(2201)*UV(174)&
               &+JVS(2202)*UV(175)+JVS(2203)*UV(176)+JVS(2204)*UV(177)+JVS(2205)*UV(178)+JVS(2206)*UV(179)+JVS(2207)*UV(180)&
               &+JVS(2208)*UV(181)+JVS(2209)*UV(182)+JVS(2210)*UV(183)+JVS(2211)*UV(184)+JVS(2212)*UV(186)+JVS(2213)*UV(188)&
               &+JVS(2214)*UV(189)+JVS(2215)*UV(190)+JVS(2216)*UV(191)+JVS(2217)*UV(192)+JVS(2218)*UV(193)+JVS(2219)*UV(194)&
               &+JVS(2220)*UV(195)+JVS(2221)*UV(196)+JVS(2222)*UV(197)+JVS(2223)*UV(198)+JVS(2224)*UV(199)+JVS(2225)*UV(200)&
               &+JVS(2226)*UV(201)+JVS(2227)*UV(202)+JVS(2228)*UV(203)+JVS(2229)*UV(204)+JVS(2230)*UV(205)+JVS(2231)*UV(206)&
               &+JVS(2232)*UV(207)+JVS(2233)*UV(208)+JVS(2234)*UV(209)+JVS(2235)*UV(210)+JVS(2236)*UV(211)+JVS(2237)*UV(212)&
               &+JVS(2238)*UV(213)+JVS(2239)*UV(214)+JVS(2240)*UV(215)+JVS(2241)*UV(216)+JVS(2242)*UV(217)+JVS(2243)*UV(218)&
               &+JVS(2244)*UV(219)+JVS(2245)*UV(220)+JVS(2246)*UV(221)+JVS(2247)*UV(222)+JVS(2248)*UV(223)+JVS(2249)*UV(224)&
               &+JVS(2250)*UV(225)+JVS(2251)*UV(226)+JVS(2252)*UV(227)+JVS(2253)*UV(228)+JVS(2254)*UV(229)+JVS(2255)*UV(230)&
               &+JVS(2256)*UV(231)+JVS(2257)*UV(232)
END SUBROUTINE Jac_SP_Vec
SUBROUTINE JacTR_SP_Vec ( JVS, UV, JTUV )
  REAL(kind=dp) :: JVS(LU_NONZERO)
  REAL(kind=dp) :: UV(NVAR)
  REAL(kind=dp) :: JTUV(NVAR)
  JTUV(1) = JVS(1)*UV(1)
  JTUV(2) = JVS(2)*UV(2)
  JTUV(3) = JVS(3)*UV(3)
  JTUV(4) = JVS(4)*UV(3)+JVS(6)*UV(4)
  JTUV(5) = JVS(10)*UV(5)
  JTUV(6) = JVS(15)*UV(6)
  JTUV(7) = JVS(18)*UV(7)+JVS(775)*UV(173)+JVS(1668)*UV(228)
  JTUV(8) = JVS(20)*UV(8)+JVS(1243)*UV(209)+JVS(1669)*UV(228)
  JTUV(9) = JVS(7)*UV(4)+JVS(22)*UV(9)+JVS(2122)*UV(232)
  JTUV(10) = JVS(25)*UV(10)+JVS(1553)*UV(225)+JVS(1670)*UV(228)
  JTUV(11) = JVS(27)*UV(11)+JVS(1280)*UV(211)+JVS(1671)*UV(228)
  JTUV(12) = JVS(29)*UV(12)+JVS(1281)*UV(211)+JVS(1672)*UV(228)
  JTUV(13) = JVS(31)*UV(13)+JVS(1282)*UV(211)+JVS(1673)*UV(228)
  JTUV(14) = JVS(33)*UV(14)+JVS(1244)*UV(209)+JVS(1674)*UV(228)
  JTUV(15) = JVS(35)*UV(15)+JVS(1094)*UV(199)+JVS(1675)*UV(228)
  JTUV(16) = JVS(37)*UV(16)+JVS(1095)*UV(199)+JVS(1676)*UV(228)
  JTUV(17) = JVS(39)*UV(17)+JVS(1096)*UV(199)+JVS(1677)*UV(228)
  JTUV(18) = JVS(41)*UV(18)+JVS(1097)*UV(199)+JVS(1678)*UV(228)
  JTUV(19) = JVS(43)*UV(19)+JVS(1283)*UV(211)+JVS(1679)*UV(228)
  JTUV(20) = JVS(45)*UV(20)+JVS(642)*UV(155)+JVS(1680)*UV(228)
  JTUV(21) = JVS(47)*UV(21)+JVS(643)*UV(155)+JVS(1681)*UV(228)
  JTUV(22) = JVS(49)*UV(22)+JVS(644)*UV(155)+JVS(1682)*UV(228)
  JTUV(23) = JVS(51)*UV(23)+JVS(645)*UV(155)+JVS(1683)*UV(228)
  JTUV(24) = JVS(53)*UV(24)+JVS(785)*UV(174)+JVS(1684)*UV(228)
  JTUV(25) = JVS(55)*UV(25)+JVS(653)*UV(156)+JVS(1351)*UV(215)+JVS(1685)*UV(228)
  JTUV(26) = JVS(57)*UV(26)+JVS(1006)*UV(192)+JVS(1137)*UV(202)+JVS(1686)*UV(228)
  JTUV(27) = JVS(59)*UV(27)+JVS(646)*UV(155)+JVS(1118)*UV(200)+JVS(1687)*UV(228)
  JTUV(28) = JVS(61)*UV(28)+JVS(647)*UV(155)+JVS(1119)*UV(200)+JVS(1688)*UV(228)
  JTUV(29) = JVS(63)*UV(29)+JVS(115)*UV(46)+JVS(695)*UV(163)+JVS(1689)*UV(228)+JVS(2123)*UV(232)
  JTUV(30) = JVS(65)*UV(30)+JVS(124)*UV(48)+JVS(838)*UV(181)+JVS(1690)*UV(228)+JVS(2124)*UV(232)
  JTUV(31) = JVS(67)*UV(31)+JVS(1233)*UV(208)+JVS(1245)*UV(209)+JVS(1417)*UV(219)+JVS(1691)*UV(228)
  JTUV(32) = JVS(69)*UV(32)+JVS(1886)*UV(229)+JVS(2002)*UV(230)
  JTUV(33) = JVS(72)*UV(33)+JVS(1538)*UV(224)+JVS(1692)*UV(228)
  JTUV(34) = JVS(75)*UV(34)+JVS(1284)*UV(211)+JVS(1887)*UV(229)
  JTUV(35) = JVS(78)*UV(35)+JVS(109)*UV(45)+JVS(598)*UV(150)+JVS(942)*UV(189)+JVS(1693)*UV(228)+JVS(2125)*UV(232)
  JTUV(36) = JVS(80)*UV(36)+JVS(1170)*UV(206)+JVS(1694)*UV(228)+JVS(2126)*UV(232)
  JTUV(37) = JVS(83)*UV(37)+JVS(1222)*UV(207)+JVS(1464)*UV(220)+JVS(1695)*UV(228)
  JTUV(38) = JVS(86)*UV(38)+JVS(1325)*UV(213)+JVS(1696)*UV(228)
  JTUV(39) = JVS(90)*UV(39)+JVS(1314)*UV(212)+JVS(1697)*UV(228)
  JTUV(40) = JVS(94)*UV(40)+JVS(1598)*UV(227)+JVS(1698)*UV(228)+JVS(1888)*UV(229)
  JTUV(41) = JVS(16)*UV(6)+JVS(97)*UV(41)+JVS(383)*UV(109)+JVS(1285)*UV(211)+JVS(1699)*UV(228)
  JTUV(42) = JVS(100)*UV(42)+JVS(1098)*UV(199)+JVS(1700)*UV(228)+JVS(2083)*UV(231)+JVS(2127)*UV(232)
  JTUV(43) = JVS(103)*UV(43)+JVS(909)*UV(187)+JVS(1383)*UV(217)+JVS(1701)*UV(228)+JVS(2128)*UV(232)
  JTUV(44) = JVS(106)*UV(44)+JVS(1326)*UV(213)+JVS(1418)*UV(219)+JVS(1465)*UV(220)+JVS(1702)*UV(228)
  JTUV(45) = JVS(110)*UV(45)+JVS(1703)*UV(228)+JVS(2129)*UV(232)
  JTUV(46) = JVS(116)*UV(46)+JVS(119)*UV(47)+JVS(876)*UV(185)+JVS(1704)*UV(228)+JVS(2003)*UV(230)
  JTUV(47) = JVS(120)*UV(47)+JVS(425)*UV(119)+JVS(1889)*UV(229)
  JTUV(48) = JVS(125)*UV(48)+JVS(128)*UV(49)+JVS(877)*UV(185)+JVS(1705)*UV(228)+JVS(2004)*UV(230)
  JTUV(49) = JVS(129)*UV(49)+JVS(434)*UV(121)+JVS(1890)*UV(229)
  JTUV(50) = JVS(133)*UV(50)+JVS(1384)*UV(217)+JVS(1575)*UV(226)+JVS(1706)*UV(228)+JVS(2130)*UV(232)
  JTUV(51) = JVS(136)*UV(51)+JVS(1286)*UV(211)+JVS(1707)*UV(228)
  JTUV(52) = JVS(5)*UV(3)+JVS(11)*UV(5)+JVS(141)*UV(52)+JVS(1287)*UV(211)+JVS(2131)*UV(232)
  JTUV(53) = JVS(146)*UV(53)+JVS(1288)*UV(211)+JVS(1419)*UV(219)+JVS(1708)*UV(228)
  JTUV(54) = JVS(150)*UV(54)+JVS(812)*UV(179)+JVS(1709)*UV(228)+JVS(1891)*UV(229)
  JTUV(55) = JVS(154)*UV(55)+JVS(535)*UV(140)+JVS(1710)*UV(228)+JVS(1892)*UV(229)
  JTUV(56) = JVS(158)*UV(56)+JVS(1576)*UV(226)+JVS(1711)*UV(228)+JVS(2132)*UV(232)
  JTUV(57) = JVS(162)*UV(57)+JVS(479)*UV(131)+JVS(1052)*UV(195)+JVS(1712)*UV(228)
  JTUV(58) = JVS(166)*UV(58)+JVS(1012)*UV(193)+JVS(1246)*UV(209)+JVS(1713)*UV(228)
  JTUV(59) = JVS(170)*UV(59)+JVS(578)*UV(148)+JVS(1352)*UV(215)+JVS(1714)*UV(228)
  JTUV(60) = JVS(174)*UV(60)+JVS(1171)*UV(206)+JVS(1715)*UV(228)+JVS(1893)*UV(229)
  JTUV(61) = JVS(178)*UV(61)+JVS(1716)*UV(228)+JVS(1894)*UV(229)+JVS(2084)*UV(231)
  JTUV(62) = JVS(182)*UV(62)+JVS(1143)*UV(203)+JVS(1247)*UV(209)+JVS(1717)*UV(228)
  JTUV(63) = JVS(186)*UV(63)+JVS(1043)*UV(194)+JVS(1718)*UV(228)+JVS(1895)*UV(229)
  JTUV(64) = JVS(190)*UV(64)+JVS(612)*UV(151)+JVS(1719)*UV(228)+JVS(2133)*UV(232)
  JTUV(65) = JVS(194)*UV(65)+JVS(1061)*UV(196)+JVS(1720)*UV(228)+JVS(1896)*UV(229)
  JTUV(66) = JVS(198)*UV(66)+JVS(705)*UV(165)+JVS(1721)*UV(228)+JVS(1897)*UV(229)
  JTUV(67) = JVS(202)*UV(67)+JVS(706)*UV(165)+JVS(1722)*UV(228)+JVS(2134)*UV(232)
  JTUV(68) = JVS(206)*UV(68)+JVS(1315)*UV(212)+JVS(1494)*UV(221)+JVS(1723)*UV(228)
  JTUV(69) = JVS(210)*UV(69)+JVS(707)*UV(165)+JVS(1724)*UV(228)+JVS(1898)*UV(229)
  JTUV(70) = JVS(214)*UV(70)+JVS(659)*UV(157)+JVS(1316)*UV(212)+JVS(1725)*UV(228)
  JTUV(71) = JVS(218)*UV(71)+JVS(660)*UV(157)+JVS(1153)*UV(204)+JVS(1726)*UV(228)
  JTUV(72) = JVS(222)*UV(72)+JVS(370)*UV(107)+JVS(1727)*UV(228)+JVS(2135)*UV(232)
  JTUV(73) = JVS(226)*UV(73)+JVS(1728)*UV(228)+JVS(2085)*UV(231)+JVS(2136)*UV(232)
  JTUV(74) = JVS(230)*UV(74)+JVS(1729)*UV(228)+JVS(1899)*UV(229)+JVS(2137)*UV(232)
  JTUV(75) = JVS(234)*UV(75)+JVS(910)*UV(187)+JVS(1730)*UV(228)+JVS(2138)*UV(232)
  JTUV(76) = JVS(238)*UV(76)+JVS(1099)*UV(199)+JVS(1731)*UV(228)
  JTUV(77) = JVS(244)*UV(77)+JVS(507)*UV(135)+JVS(994)*UV(191)+JVS(1385)*UV(217)+JVS(1732)*UV(228)+JVS(2139)*UV(232)
  JTUV(78) = JVS(247)*UV(78)+JVS(824)*UV(180)+JVS(1733)*UV(228)+JVS(1900)*UV(229)
  JTUV(79) = JVS(252)*UV(79)+JVS(527)*UV(139)+JVS(1223)*UV(207)+JVS(1734)*UV(228)+JVS(1901)*UV(229)
  JTUV(80) = JVS(256)*UV(80)+JVS(528)*UV(139)+JVS(1539)*UV(224)+JVS(1735)*UV(228)
  JTUV(81) = JVS(84)*UV(37)+JVS(261)*UV(81)+JVS(1523)*UV(223)+JVS(1736)*UV(228)
  JTUV(82) = JVS(265)*UV(82)+JVS(536)*UV(140)+JVS(1737)*UV(228)+JVS(2086)*UV(231)+JVS(2140)*UV(232)
  JTUV(83) = JVS(269)*UV(83)+JVS(1172)*UV(206)+JVS(1738)*UV(228)+JVS(1902)*UV(229)+JVS(2087)*UV(231)
  JTUV(84) = JVS(273)*UV(84)+JVS(995)*UV(191)+JVS(1173)*UV(206)+JVS(1739)*UV(228)+JVS(2141)*UV(232)
  JTUV(85) = JVS(277)*UV(85)+JVS(911)*UV(187)+JVS(1740)*UV(228)+JVS(1903)*UV(229)+JVS(2142)*UV(232)
  JTUV(86) = JVS(281)*UV(86)+JVS(1062)*UV(196)+JVS(1075)*UV(197)+JVS(1420)*UV(219)+JVS(1741)*UV(228)
  JTUV(87) = JVS(285)*UV(87)+JVS(1084)*UV(198)+JVS(1125)*UV(201)+JVS(1742)*UV(228)+JVS(1904)*UV(229)
  JTUV(88) = JVS(289)*UV(88)+JVS(682)*UV(161)+JVS(943)*UV(189)+JVS(1743)*UV(228)+JVS(2143)*UV(232)
  JTUV(89) = JVS(293)*UV(89)+JVS(599)*UV(150)+JVS(632)*UV(154)+JVS(1744)*UV(228)+JVS(2144)*UV(232)
  JTUV(90) = JVS(297)*UV(90)+JVS(1174)*UV(206)+JVS(1745)*UV(228)+JVS(1905)*UV(229)+JVS(2145)*UV(232)
  JTUV(91) = JVS(301)*UV(91)+JVS(600)*UV(150)+JVS(844)*UV(182)+JVS(1746)*UV(228)+JVS(2146)*UV(232)
  JTUV(92) = JVS(305)*UV(92)+JVS(1747)*UV(228)+JVS(1906)*UV(229)+JVS(2088)*UV(231)+JVS(2147)*UV(232)
  JTUV(93) = JVS(309)*UV(93)+JVS(912)*UV(187)+JVS(986)*UV(190)+JVS(1154)*UV(204)+JVS(1748)*UV(228)
  JTUV(94) = JVS(313)*UV(94)+JVS(857)*UV(183)+JVS(944)*UV(189)+JVS(1467)*UV(220)+JVS(1749)*UV(228)
  JTUV(95) = JVS(73)*UV(33)+JVS(317)*UV(95)+JVS(913)*UV(187)+JVS(1750)*UV(228)+JVS(1907)*UV(229)
  JTUV(96) = JVS(321)*UV(96)+JVS(486)*UV(132)+JVS(1175)*UV(206)+JVS(1751)*UV(228)+JVS(1908)*UV(229)
  JTUV(97) = JVS(325)*UV(97)+JVS(371)*UV(107)+JVS(1752)*UV(228)+JVS(1909)*UV(229)+JVS(2148)*UV(232)
  JTUV(98) = JVS(329)*UV(98)+JVS(1577)*UV(226)+JVS(1753)*UV(228)+JVS(1910)*UV(229)+JVS(2149)*UV(232)
  JTUV(99) = JVS(87)*UV(38)+JVS(333)*UV(99)+JVS(914)*UV(187)+JVS(1754)*UV(228)+JVS(1911)*UV(229)
  JTUV(100) = JVS(88)*UV(38)+JVS(337)*UV(100)+JVS(915)*UV(187)+JVS(1554)*UV(225)+JVS(1755)*UV(228)
  JTUV(101) = JVS(341)*UV(101)+JVS(1176)*UV(206)+JVS(1289)*UV(211)+JVS(1756)*UV(228)+JVS(2150)*UV(232)
  JTUV(102) = JVS(345)*UV(102)+JVS(743)*UV(169)+JVS(1757)*UV(228)+JVS(1912)*UV(229)
  JTUV(103) = JVS(350)*UV(103)+JVS(480)*UV(131)+JVS(754)*UV(170)+JVS(1758)*UV(228)+JVS(1913)*UV(229)
  JTUV(104) = JVS(354)*UV(104)+JVS(620)*UV(152)+JVS(1013)*UV(193)+JVS(1759)*UV(228)+JVS(2151)*UV(232)
  JTUV(105) = JVS(358)*UV(105)+JVS(1063)*UV(196)+JVS(1177)*UV(206)+JVS(1760)*UV(228)+JVS(2152)*UV(232)
  JTUV(106) = JVS(362)*UV(106)+JVS(1761)*UV(228)+JVS(2153)*UV(232)
  JTUV(107) = JVS(372)*UV(107)+JVS(1271)*UV(210)+JVS(1762)*UV(228)
  JTUV(108) = JVS(98)*UV(41)+JVS(380)*UV(108)+JVS(388)*UV(110)+JVS(878)*UV(185)+JVS(1763)*UV(228)+JVS(2005)*UV(230)&
                &+JVS(2154)*UV(232)
  JTUV(109) = JVS(12)*UV(5)+JVS(385)*UV(109)+JVS(761)*UV(171)+JVS(879)*UV(185)+JVS(1764)*UV(228)+JVS(2006)*UV(230)&
                &+JVS(2155)*UV(232)
  JTUV(110) = JVS(389)*UV(110)+JVS(547)*UV(142)+JVS(1178)*UV(206)+JVS(1599)*UV(227)+JVS(1914)*UV(229)
  JTUV(111) = JVS(393)*UV(111)+JVS(945)*UV(189)+JVS(1144)*UV(203)+JVS(1765)*UV(228)+JVS(1915)*UV(229)+JVS(2089)*UV(231)
  JTUV(112) = JVS(397)*UV(112)+JVS(946)*UV(189)+JVS(996)*UV(191)+JVS(1179)*UV(206)+JVS(1766)*UV(228)+JVS(1916)*UV(229)
  JTUV(113) = JVS(401)*UV(113)+JVS(1044)*UV(194)+JVS(1126)*UV(201)+JVS(1180)*UV(206)+JVS(1767)*UV(228)+JVS(2156)*UV(232)
  JTUV(114) = JVS(405)*UV(114)+JVS(1014)*UV(193)+JVS(1064)*UV(196)+JVS(1085)*UV(198)+JVS(1768)*UV(228)+JVS(2157)*UV(232)
  JTUV(115) = JVS(107)*UV(44)+JVS(409)*UV(115)+JVS(1555)*UV(225)+JVS(1769)*UV(228)
  JTUV(116) = JVS(413)*UV(116)+JVS(813)*UV(179)+JVS(947)*UV(189)+JVS(1076)*UV(197)+JVS(1770)*UV(228)+JVS(1917)*UV(229)
  JTUV(117) = JVS(417)*UV(117)+JVS(814)*UV(179)+JVS(1181)*UV(206)+JVS(1771)*UV(228)+JVS(2090)*UV(231)+JVS(2158)*UV(232)
  JTUV(118) = JVS(421)*UV(118)+JVS(601)*UV(150)+JVS(633)*UV(154)+JVS(1772)*UV(228)+JVS(1918)*UV(229)+JVS(2159)*UV(232)
  JTUV(119) = JVS(426)*UV(119)+JVS(744)*UV(169)+JVS(880)*UV(185)+JVS(1773)*UV(228)+JVS(1919)*UV(229)+JVS(2007)*UV(230)
  JTUV(120) = JVS(430)*UV(120)+JVS(602)*UV(150)+JVS(845)*UV(182)+JVS(1774)*UV(228)+JVS(1920)*UV(229)+JVS(2160)*UV(232)
  JTUV(121) = JVS(435)*UV(121)+JVS(825)*UV(180)+JVS(881)*UV(185)+JVS(1775)*UV(228)+JVS(1921)*UV(229)+JVS(2008)*UV(230)
  JTUV(122) = JVS(439)*UV(122)+JVS(826)*UV(180)+JVS(916)*UV(187)+JVS(1495)*UV(221)+JVS(1776)*UV(228)+JVS(1922)*UV(229)
  JTUV(123) = JVS(443)*UV(123)+JVS(667)*UV(158)+JVS(987)*UV(190)+JVS(1182)*UV(206)+JVS(1777)*UV(228)+JVS(2161)*UV(232)
  JTUV(124) = JVS(447)*UV(124)+JVS(487)*UV(132)+JVS(868)*UV(184)+JVS(1183)*UV(206)+JVS(1778)*UV(228)+JVS(2162)*UV(232)
  JTUV(125) = JVS(451)*UV(125)+JVS(488)*UV(132)+JVS(735)*UV(168)+JVS(1184)*UV(206)+JVS(1779)*UV(228)+JVS(1923)*UV(229)
  JTUV(126) = JVS(455)*UV(126)+JVS(948)*UV(189)+JVS(1185)*UV(206)+JVS(1422)*UV(219)+JVS(1780)*UV(228)+JVS(1924)*UV(229)
  JTUV(127) = JVS(8)*UV(4)+JVS(23)*UV(9)+JVS(459)*UV(127)+JVS(776)*UV(173)+JVS(1781)*UV(228)
  JTUV(128) = JVS(465)*UV(128)+JVS(621)*UV(152)+JVS(1015)*UV(193)+JVS(1782)*UV(228)+JVS(1925)*UV(229)+JVS(2164)*UV(232)
  JTUV(129) = JVS(469)*UV(129)+JVS(827)*UV(180)+JVS(1578)*UV(226)+JVS(1783)*UV(228)+JVS(2165)*UV(232)
  JTUV(130) = JVS(474)*UV(130)+JVS(846)*UV(182)+JVS(1016)*UV(193)+JVS(1784)*UV(228)+JVS(2166)*UV(232)
  JTUV(131) = JVS(481)*UV(131)+JVS(1353)*UV(215)+JVS(1409)*UV(218)+JVS(1469)*UV(220)+JVS(1785)*UV(228)
  JTUV(132) = JVS(489)*UV(132)+JVS(1341)*UV(214)+JVS(1786)*UV(228)
  JTUV(133) = JVS(498)*UV(133)+JVS(724)*UV(167)+JVS(1017)*UV(193)+JVS(1787)*UV(228)+JVS(2167)*UV(232)
  JTUV(134) = JVS(503)*UV(134)+JVS(589)*UV(149)+JVS(1248)*UV(209)+JVS(1788)*UV(228)+JVS(1926)*UV(229)+JVS(2091)*UV(231)&
                &+JVS(2168)*UV(232)
  JTUV(135) = JVS(508)*UV(135)+JVS(858)*UV(183)+JVS(882)*UV(185)+JVS(949)*UV(189)+JVS(1789)*UV(228)+JVS(2009)*UV(230)&
                &+JVS(2169)*UV(232)
  JTUV(136) = JVS(512)*UV(136)+JVS(590)*UV(149)+JVS(1249)*UV(209)+JVS(1790)*UV(228)+JVS(2092)*UV(231)+JVS(2170)*UV(232)
  JTUV(137) = JVS(517)*UV(137)+JVS(745)*UV(169)+JVS(1579)*UV(226)+JVS(1791)*UV(228)+JVS(2093)*UV(231)+JVS(2171)*UV(232)
  JTUV(138) = JVS(522)*UV(138)+JVS(847)*UV(182)+JVS(1018)*UV(193)+JVS(1792)*UV(228)+JVS(1927)*UV(229)+JVS(2172)*UV(232)
  JTUV(139) = JVS(529)*UV(139)+JVS(1354)*UV(215)+JVS(1374)*UV(216)+JVS(1423)*UV(219)+JVS(1793)*UV(228)
  JTUV(140) = JVS(537)*UV(140)+JVS(579)*UV(148)+JVS(1424)*UV(219)+JVS(1794)*UV(228)+JVS(2094)*UV(231)+JVS(2173)*UV(232)
  JTUV(141) = JVS(542)*UV(141)+JVS(725)*UV(167)+JVS(1019)*UV(193)+JVS(1795)*UV(228)+JVS(1928)*UV(229)+JVS(2174)*UV(232)
  JTUV(142) = JVS(548)*UV(142)+JVS(768)*UV(172)+JVS(1505)*UV(222)+JVS(1600)*UV(227)+JVS(1929)*UV(229)
  JTUV(143) = JVS(137)*UV(51)+JVS(554)*UV(143)+JVS(717)*UV(166)+JVS(950)*UV(189)+JVS(1186)*UV(206)+JVS(1291)*UV(211)&
                &+JVS(1386)*UV(217)+JVS(1506)*UV(222)+JVS(1796)*UV(228)+JVS(2010)*UV(230)
  JTUV(144) = JVS(191)*UV(64)+JVS(558)*UV(144)+JVS(613)*UV(151)+JVS(1601)*UV(227)+JVS(1930)*UV(229)+JVS(2011)*UV(230)&
                &+JVS(2175)*UV(232)
  JTUV(145) = JVS(179)*UV(61)+JVS(563)*UV(145)+JVS(1602)*UV(227)+JVS(1931)*UV(229)+JVS(2012)*UV(230)+JVS(2095)*UV(231)&
                &+JVS(2176)*UV(232)
  JTUV(146) = JVS(211)*UV(69)+JVS(568)*UV(146)+JVS(708)*UV(165)+JVS(1603)*UV(227)+JVS(1932)*UV(229)+JVS(2013)*UV(230)&
                &+JVS(2177)*UV(232)
  JTUV(147) = JVS(175)*UV(60)+JVS(573)*UV(147)+JVS(1187)*UV(206)+JVS(1604)*UV(227)+JVS(1933)*UV(229)+JVS(2014)*UV(230)&
                &+JVS(2178)*UV(232)
  JTUV(148) = JVS(580)*UV(148)+JVS(1387)*UV(217)+JVS(1425)*UV(219)+JVS(1801)*UV(228)
  JTUV(149) = JVS(591)*UV(149)+JVS(1234)*UV(208)+JVS(1250)*UV(209)+JVS(1426)*UV(219)+JVS(1802)*UV(228)
  JTUV(150) = JVS(603)*UV(150)+JVS(951)*UV(189)+JVS(1803)*UV(228)+JVS(2179)*UV(232)
  JTUV(151) = JVS(614)*UV(151)+JVS(683)*UV(161)+JVS(934)*UV(188)+JVS(952)*UV(189)+JVS(1804)*UV(228)+JVS(2180)*UV(232)
  JTUV(152) = JVS(239)*UV(76)+JVS(622)*UV(152)+JVS(1355)*UV(215)+JVS(1524)*UV(223)+JVS(1805)*UV(228)+JVS(2181)*UV(232)
  JTUV(153) = JVS(111)*UV(45)+JVS(574)*UV(147)+JVS(628)*UV(153)+JVS(953)*UV(189)+JVS(1101)*UV(199)+JVS(1188)*UV(206)&
                &+JVS(1507)*UV(222)+JVS(1806)*UV(228)+JVS(2015)*UV(230)+JVS(2182)*UV(232)
  JTUV(154) = JVS(240)*UV(76)+JVS(634)*UV(154)+JVS(1251)*UV(209)+JVS(1807)*UV(228)+JVS(2183)*UV(232)
  JTUV(155) = JVS(499)*UV(133)+JVS(543)*UV(141)+JVS(648)*UV(155)+JVS(726)*UV(167)+JVS(1020)*UV(193)+JVS(1606)*UV(227)&
                &+JVS(1935)*UV(229)+JVS(2016)*UV(230)+JVS(2184)*UV(232)
  JTUV(156) = JVS(104)*UV(43)+JVS(235)*UV(75)+JVS(278)*UV(85)+JVS(654)*UV(156)+JVS(917)*UV(187)+JVS(1607)*UV(227)&
                &+JVS(1936)*UV(229)+JVS(2017)*UV(230)+JVS(2185)*UV(232)
  JTUV(157) = JVS(219)*UV(71)+JVS(661)*UV(157)+JVS(1155)*UV(204)+JVS(1608)*UV(227)+JVS(1937)*UV(229)+JVS(2018)*UV(230)&
                &+JVS(2186)*UV(232)
  JTUV(158) = JVS(668)*UV(158)+JVS(859)*UV(183)+JVS(883)*UV(185)+JVS(954)*UV(189)+JVS(1427)*UV(219)+JVS(1811)*UV(228)&
                &+JVS(2019)*UV(230)
  JTUV(159) = JVS(363)*UV(106)+JVS(373)*UV(107)+JVS(490)*UV(132)+JVS(674)*UV(159)+JVS(736)*UV(168)+JVS(869)*UV(184)&
                &+JVS(955)*UV(189)+JVS(1189)*UV(206)+JVS(1342)*UV(214)+JVS(1508)*UV(222)+JVS(1812)*UV(228)+JVS(2020)*UV(230)
  JTUV(160) = JVS(245)*UV(77)+JVS(678)*UV(160)+JVS(918)*UV(187)+JVS(1813)*UV(228)+JVS(1938)*UV(229)
  JTUV(161) = JVS(684)*UV(161)+JVS(1021)*UV(193)+JVS(1190)*UV(206)+JVS(1428)*UV(219)+JVS(1814)*UV(228)+JVS(1939)*UV(229)
  JTUV(162) = JVS(138)*UV(51)+JVS(564)*UV(145)+JVS(691)*UV(162)+JVS(957)*UV(189)+JVS(1292)*UV(211)+JVS(1330)*UV(213)&
                &+JVS(1509)*UV(222)+JVS(1815)*UV(228)+JVS(2022)*UV(230)+JVS(2096)*UV(231)
  JTUV(163) = JVS(294)*UV(89)+JVS(422)*UV(118)+JVS(604)*UV(150)+JVS(635)*UV(154)+JVS(696)*UV(163)+JVS(1610)*UV(227)&
                &+JVS(1941)*UV(229)+JVS(2023)*UV(230)+JVS(2190)*UV(232)
  JTUV(164) = JVS(91)*UV(39)+JVS(364)*UV(106)+JVS(569)*UV(146)+JVS(701)*UV(164)+JVS(709)*UV(165)+JVS(902)*UV(186)&
                &+JVS(919)*UV(187)+JVS(1053)*UV(195)+JVS(1510)*UV(222)+JVS(1817)*UV(228)+JVS(2024)*UV(230)
  JTUV(165) = JVS(710)*UV(165)+JVS(885)*UV(185)+JVS(1496)*UV(221)+JVS(1818)*UV(228)+JVS(2025)*UV(230)+JVS(2192)*UV(232)
  JTUV(166) = JVS(270)*UV(83)+JVS(718)*UV(166)+JVS(1191)*UV(206)+JVS(1612)*UV(227)+JVS(1943)*UV(229)+JVS(2026)*UV(230)&
                &+JVS(2097)*UV(231)+JVS(2193)*UV(232)
  JTUV(167) = JVS(241)*UV(76)+JVS(727)*UV(167)+JVS(1253)*UV(209)+JVS(1556)*UV(225)+JVS(1820)*UV(228)+JVS(2194)*UV(232)
  JTUV(168) = JVS(452)*UV(125)+JVS(491)*UV(132)+JVS(737)*UV(168)+JVS(1192)*UV(206)+JVS(1613)*UV(227)+JVS(1944)*UV(229)&
                &+JVS(2027)*UV(230)+JVS(2195)*UV(232)
  JTUV(169) = JVS(746)*UV(169)+JVS(1470)*UV(220)+JVS(1557)*UV(225)+JVS(1822)*UV(228)+JVS(2098)*UV(231)+JVS(2196)*UV(232)
  JTUV(170) = JVS(248)*UV(78)+JVS(470)*UV(129)+JVS(755)*UV(170)+JVS(1580)*UV(226)+JVS(1614)*UV(227)+JVS(1945)*UV(229)&
                &+JVS(2028)*UV(230)+JVS(2197)*UV(232)
  JTUV(171) = JVS(142)*UV(52)+JVS(460)*UV(127)+JVS(762)*UV(171)+JVS(1293)*UV(211)+JVS(1511)*UV(222)+JVS(1615)*UV(227)&
                &+JVS(1946)*UV(229)
  JTUV(172) = JVS(461)*UV(127)+JVS(763)*UV(171)+JVS(769)*UV(172)+JVS(1294)*UV(211)+JVS(1512)*UV(222)+JVS(1616)*UV(227)&
                &+JVS(1947)*UV(229)
  JTUV(173) = JVS(9)*UV(4)+JVS(462)*UV(127)+JVS(779)*UV(173)+JVS(1513)*UV(222)+JVS(1617)*UV(227)+JVS(1948)*UV(229)&
                &+JVS(2029)*UV(230)
  JTUV(174) = JVS(355)*UV(104)+JVS(466)*UV(128)+JVS(623)*UV(152)+JVS(786)*UV(174)+JVS(1022)*UV(193)+JVS(1618)*UV(227)&
                &+JVS(1949)*UV(229)+JVS(2030)*UV(230)+JVS(2201)*UV(232)
  JTUV(175) = JVS(112)*UV(45)+JVS(559)*UV(144)+JVS(791)*UV(175)+JVS(805)*UV(178)+JVS(959)*UV(189)+JVS(1127)*UV(201)&
                &+JVS(1514)*UV(222)+JVS(1828)*UV(228)+JVS(2031)*UV(230)+JVS(2202)*UV(232)
  JTUV(176) = JVS(513)*UV(136)+JVS(795)*UV(176)+JVS(1331)*UV(213)+JVS(1620)*UV(227)+JVS(1951)*UV(229)+JVS(2032)*UV(230)&
                &+JVS(2203)*UV(232)
  JTUV(177) = JVS(257)*UV(80)+JVS(800)*UV(177)+JVS(1225)*UV(207)+JVS(1621)*UV(227)+JVS(1952)*UV(229)+JVS(2033)*UV(230)&
                &+JVS(2204)*UV(232)
  JTUV(178) = JVS(187)*UV(63)+JVS(402)*UV(113)+JVS(806)*UV(178)+JVS(1045)*UV(194)+JVS(1128)*UV(201)+JVS(1194)*UV(206)&
                &+JVS(1622)*UV(227)+JVS(1953)*UV(229)+JVS(2034)*UV(230)+JVS(2205)*UV(232)
  JTUV(179) = JVS(815)*UV(179)+JVS(1024)*UV(193)+JVS(1195)*UV(206)+JVS(1432)*UV(219)+JVS(1832)*UV(228)+JVS(2206)*UV(232)
  JTUV(180) = JVS(829)*UV(180)+JVS(1471)*UV(220)+JVS(1526)*UV(223)+JVS(1581)*UV(226)+JVS(1833)*UV(228)+JVS(2207)*UV(232)
  JTUV(181) = JVS(302)*UV(91)+JVS(431)*UV(120)+JVS(605)*UV(150)+JVS(636)*UV(154)+JVS(839)*UV(181)+JVS(848)*UV(182)&
                &+JVS(1025)*UV(193)+JVS(1623)*UV(227)+JVS(1954)*UV(229)+JVS(2035)*UV(230)+JVS(2208)*UV(232)
  JTUV(182) = JVS(242)*UV(76)+JVS(849)*UV(182)+JVS(1295)*UV(211)+JVS(1358)*UV(215)+JVS(1835)*UV(228)+JVS(2209)*UV(232)
  JTUV(183) = JVS(314)*UV(94)+JVS(861)*UV(183)+JVS(961)*UV(189)+JVS(1472)*UV(220)+JVS(1624)*UV(227)+JVS(1955)*UV(229)&
                &+JVS(2036)*UV(230)+JVS(2210)*UV(232)
  JTUV(184) = JVS(322)*UV(96)+JVS(448)*UV(124)+JVS(492)*UV(132)+JVS(870)*UV(184)+JVS(920)*UV(187)+JVS(1162)*UV(205)&
                &+JVS(1196)*UV(206)+JVS(1625)*UV(227)+JVS(1956)*UV(229)+JVS(2037)*UV(230)+JVS(2211)*UV(232)
  JTUV(185) = JVS(886)*UV(185)+JVS(1838)*UV(228)+JVS(1957)*UV(229)+JVS(2038)*UV(230)
  JTUV(186) = JVS(199)*UV(66)+JVS(203)*UV(67)+JVS(711)*UV(165)+JVS(903)*UV(186)+JVS(921)*UV(187)+JVS(1163)*UV(205)&
                &+JVS(1626)*UV(227)+JVS(1958)*UV(229)+JVS(2039)*UV(230)+JVS(2212)*UV(232)
  JTUV(187) = JVS(922)*UV(187)+JVS(1296)*UV(211)+JVS(1433)*UV(219)+JVS(1473)*UV(220)+JVS(1840)*UV(228)
  JTUV(188) = JVS(290)*UV(88)+JVS(686)*UV(161)+JVS(936)*UV(188)+JVS(962)*UV(189)+JVS(1627)*UV(227)+JVS(1959)*UV(229)&
                &+JVS(2040)*UV(230)+JVS(2213)*UV(232)
  JTUV(189) = JVS(963)*UV(189)+JVS(1842)*UV(228)+JVS(2214)*UV(232)
  JTUV(190) = JVS(444)*UV(123)+JVS(669)*UV(158)+JVS(988)*UV(190)+JVS(1198)*UV(206)+JVS(1628)*UV(227)+JVS(1960)*UV(229)&
                &+JVS(2041)*UV(230)+JVS(2215)*UV(232)
  JTUV(191) = JVS(274)*UV(84)+JVS(398)*UV(112)+JVS(998)*UV(191)+JVS(1199)*UV(206)+JVS(1629)*UV(227)+JVS(1961)*UV(229)&
                &+JVS(2042)*UV(230)+JVS(2216)*UV(232)
  JTUV(192) = JVS(475)*UV(130)+JVS(523)*UV(138)+JVS(606)*UV(150)+JVS(728)*UV(167)+JVS(1007)*UV(192)+JVS(1630)*UV(227)&
                &+JVS(1962)*UV(229)+JVS(2043)*UV(230)+JVS(2217)*UV(232)
  JTUV(193) = JVS(967)*UV(189)+JVS(1028)*UV(193)+JVS(1436)*UV(219)+JVS(1846)*UV(228)+JVS(2218)*UV(232)
  JTUV(194) = JVS(365)*UV(106)+JVS(889)*UV(185)+JVS(968)*UV(189)+JVS(1029)*UV(193)+JVS(1046)*UV(194)+JVS(1065)*UV(196)&
                &+JVS(1086)*UV(198)+JVS(1437)*UV(219)+JVS(1515)*UV(222)+JVS(1847)*UV(228)+JVS(2044)*UV(230)+JVS(2219)&
                &*UV(232)
  JTUV(195) = JVS(249)*UV(78)+JVS(471)*UV(129)+JVS(830)*UV(180)+JVS(1054)*UV(195)+JVS(1631)*UV(227)+JVS(1964)*UV(229)&
                &+JVS(2045)*UV(230)+JVS(2220)*UV(232)
  JTUV(196) = JVS(890)*UV(185)+JVS(969)*UV(189)+JVS(999)*UV(191)+JVS(1066)*UV(196)+JVS(1200)*UV(206)+JVS(1849)*UV(228)&
                &+JVS(2046)*UV(230)+JVS(2221)*UV(232)
  JTUV(197) = JVS(282)*UV(86)+JVS(414)*UV(116)+JVS(816)*UV(179)+JVS(1030)*UV(193)+JVS(1067)*UV(196)+JVS(1077)*UV(197)&
                &+JVS(1201)*UV(206)+JVS(1438)*UV(219)+JVS(1633)*UV(227)+JVS(1966)*UV(229)+JVS(2047)*UV(230)+JVS(2222)&
                &*UV(232)
  JTUV(198) = JVS(286)*UV(87)+JVS(406)*UV(114)+JVS(817)*UV(179)+JVS(971)*UV(189)+JVS(1068)*UV(196)+JVS(1087)*UV(198)&
                &+JVS(1439)*UV(219)+JVS(1634)*UV(227)+JVS(1967)*UV(229)+JVS(2048)*UV(230)+JVS(2223)*UV(232)
  JTUV(199) = JVS(195)*UV(65)+JVS(359)*UV(105)+JVS(1069)*UV(196)+JVS(1109)*UV(199)+JVS(1203)*UV(206)+JVS(1635)*UV(227)&
                &+JVS(1968)*UV(229)+JVS(2049)*UV(230)+JVS(2224)*UV(232)
  JTUV(200) = JVS(500)*UV(133)+JVS(544)*UV(141)+JVS(581)*UV(148)+JVS(851)*UV(182)+JVS(1120)*UV(200)+JVS(1636)*UV(227)&
                &+JVS(1969)*UV(229)+JVS(2050)*UV(230)+JVS(2225)*UV(232)
  JTUV(201) = JVS(366)*UV(106)+JVS(891)*UV(185)+JVS(972)*UV(189)+JVS(1033)*UV(193)+JVS(1078)*UV(197)+JVS(1130)*UV(201)&
                &+JVS(1205)*UV(206)+JVS(1441)*UV(219)+JVS(1516)*UV(222)+JVS(1854)*UV(228)+JVS(2051)*UV(230)+JVS(2226)&
                &*UV(232)
  JTUV(202) = JVS(476)*UV(130)+JVS(524)*UV(138)+JVS(582)*UV(148)+JVS(607)*UV(150)+JVS(637)*UV(154)+JVS(730)*UV(167)&
                &+JVS(1138)*UV(202)+JVS(1638)*UV(227)+JVS(1971)*UV(229)+JVS(2052)*UV(230)+JVS(2227)*UV(232)
  JTUV(203) = JVS(183)*UV(62)+JVS(394)*UV(111)+JVS(1145)*UV(203)+JVS(1259)*UV(209)+JVS(1639)*UV(227)+JVS(1972)*UV(229)&
                &+JVS(2053)*UV(230)+JVS(2228)*UV(232)
  JTUV(204) = JVS(310)*UV(93)+JVS(679)*UV(160)+JVS(923)*UV(187)+JVS(989)*UV(190)+JVS(1156)*UV(204)+JVS(1640)*UV(227)&
                &+JVS(1973)*UV(229)+JVS(2054)*UV(230)+JVS(2229)*UV(232)
  JTUV(205) = JVS(163)*UV(57)+JVS(351)*UV(103)+JVS(1055)*UV(195)+JVS(1164)*UV(205)+JVS(1641)*UV(227)+JVS(1974)*UV(229)&
                &+JVS(2055)*UV(230)+JVS(2230)*UV(232)
  JTUV(206) = JVS(893)*UV(185)+JVS(976)*UV(189)+JVS(1208)*UV(206)+JVS(1859)*UV(228)+JVS(2056)*UV(230)+JVS(2231)*UV(232)
  JTUV(207) = JVS(346)*UV(102)+JVS(518)*UV(137)+JVS(1226)*UV(207)+JVS(1584)*UV(226)+JVS(1642)*UV(227)+JVS(1976)*UV(229)&
                &+JVS(2057)*UV(230)+JVS(2101)*UV(231)+JVS(2232)*UV(232)
  JTUV(208) = JVS(171)*UV(59)+JVS(1236)*UV(208)+JVS(1444)*UV(219)+JVS(1643)*UV(227)+JVS(1977)*UV(229)+JVS(2058)*UV(230)&
                &+JVS(2102)*UV(231)+JVS(2233)*UV(232)
  JTUV(209) = JVS(101)*UV(42)+JVS(227)*UV(73)+JVS(306)*UV(92)+JVS(1260)*UV(209)+JVS(1644)*UV(227)+JVS(1978)*UV(229)&
                &+JVS(2059)*UV(230)+JVS(2103)*UV(231)+JVS(2234)*UV(232)
  JTUV(210) = JVS(334)*UV(99)+JVS(338)*UV(100)+JVS(924)*UV(187)+JVS(1273)*UV(210)+JVS(1562)*UV(225)+JVS(1645)*UV(227)&
                &+JVS(1979)*UV(229)+JVS(2060)*UV(230)+JVS(2235)*UV(232)
  JTUV(211) = JVS(76)*UV(34)+JVS(81)*UV(36)+JVS(298)*UV(90)+JVS(342)*UV(101)+JVS(1210)*UV(206)+JVS(1302)*UV(211)&
                &+JVS(1646)*UV(227)+JVS(1980)*UV(229)+JVS(2061)*UV(230)+JVS(2236)*UV(232)
  JTUV(212) = JVS(215)*UV(70)+JVS(318)*UV(95)+JVS(662)*UV(157)+JVS(1318)*UV(212)+JVS(1647)*UV(227)+JVS(1981)*UV(229)&
                &+JVS(2062)*UV(230)+JVS(2237)*UV(232)
  JTUV(213) = JVS(155)*UV(55)+JVS(266)*UV(82)+JVS(1333)*UV(213)+JVS(1648)*UV(227)+JVS(1982)*UV(229)+JVS(2063)*UV(230)&
                &+JVS(2104)*UV(231)+JVS(2238)*UV(232)
  JTUV(214) = JVS(223)*UV(72)+JVS(326)*UV(97)+JVS(374)*UV(107)+JVS(796)*UV(176)+JVS(926)*UV(187)+JVS(1212)*UV(206)&
                &+JVS(1345)*UV(214)+JVS(1649)*UV(227)+JVS(1983)*UV(229)+JVS(2064)*UV(230)+JVS(2239)*UV(232)
  JTUV(215) = JVS(134)*UV(50)+JVS(159)*UV(56)+JVS(330)*UV(98)+JVS(1365)*UV(215)+JVS(1585)*UV(226)+JVS(1650)*UV(227)&
                &+JVS(1984)*UV(229)+JVS(2065)*UV(230)+JVS(2240)*UV(232)
  JTUV(216) = JVS(410)*UV(115)+JVS(1146)*UV(203)+JVS(1376)*UV(216)+JVS(1651)*UV(227)+JVS(1985)*UV(229)+JVS(2066)*UV(230)&
                &+JVS(2106)*UV(231)+JVS(2241)*UV(232)
  JTUV(217) = JVS(151)*UV(54)+JVS(418)*UV(117)+JVS(1213)*UV(206)+JVS(1399)*UV(217)+JVS(1652)*UV(227)+JVS(1986)*UV(229)&
                &+JVS(2067)*UV(230)+JVS(2107)*UV(231)+JVS(2242)*UV(232)
  JTUV(218) = JVS(262)*UV(81)+JVS(801)*UV(177)+JVS(1411)*UV(218)+JVS(1653)*UV(227)+JVS(1987)*UV(229)+JVS(2068)*UV(230)&
                &+JVS(2243)*UV(232)
  JTUV(219) = JVS(147)*UV(53)+JVS(456)*UV(126)+JVS(1305)*UV(211)+JVS(1452)*UV(219)+JVS(1654)*UV(227)+JVS(1988)*UV(229)&
                &+JVS(2069)*UV(230)+JVS(2244)*UV(232)
  JTUV(220) = JVS(167)*UV(58)+JVS(1215)*UV(206)+JVS(1453)*UV(219)+JVS(1484)*UV(220)+JVS(1655)*UV(227)+JVS(1989)*UV(229)&
                &+JVS(2070)*UV(230)+JVS(2245)*UV(232)
  JTUV(221) = JVS(207)*UV(68)+JVS(440)*UV(122)+JVS(1319)*UV(212)+JVS(1498)*UV(221)+JVS(1656)*UV(227)+JVS(1990)*UV(229)&
                &+JVS(2071)*UV(230)+JVS(2246)*UV(232)
  JTUV(222) = JVS(19)*UV(7)+JVS(92)*UV(39)+JVS(113)*UV(45)+JVS(139)*UV(51)+JVS(143)*UV(52)+JVS(367)*UV(106)+JVS(375)&
                &*UV(107)+JVS(493)*UV(132)+JVS(549)*UV(142)+JVS(555)*UV(143)+JVS(629)*UV(153)+JVS(675)*UV(159)+JVS(692)&
                &*UV(162)+JVS(702)*UV(164)+JVS(712)*UV(165)+JVS(764)*UV(171)+JVS(770)*UV(172)+JVS(780)*UV(173)+JVS(792)&
                &*UV(175)+JVS(928)*UV(187)+JVS(978)*UV(189)+JVS(1037)*UV(193)+JVS(1047)*UV(194)+JVS(1056)*UV(195)+JVS(1070)&
                &*UV(196)+JVS(1131)*UV(201)+JVS(1216)*UV(206)+JVS(1307)*UV(211)+JVS(1346)*UV(214)+JVS(1455)*UV(219)&
                &+JVS(1517)*UV(222)+JVS(1657)*UV(227)+JVS(1875)*UV(228)+JVS(1991)*UV(229)+JVS(2072)*UV(230)+JVS(2111)&
                &*UV(231)+JVS(2247)*UV(232)
  JTUV(223) = JVS(253)*UV(79)+JVS(258)*UV(80)+JVS(1532)*UV(223)+JVS(1546)*UV(224)+JVS(1658)*UV(227)+JVS(1992)*UV(229)&
                &+JVS(2073)*UV(230)+JVS(2248)*UV(232)
  JTUV(224) = JVS(347)*UV(102)+JVS(519)*UV(137)+JVS(748)*UV(169)+JVS(1547)*UV(224)+JVS(1659)*UV(227)+JVS(1993)*UV(229)&
                &+JVS(2074)*UV(230)+JVS(2249)*UV(232)
  JTUV(225) = JVS(504)*UV(134)+JVS(514)*UV(136)+JVS(593)*UV(149)+JVS(1264)*UV(209)+JVS(1569)*UV(225)+JVS(1660)*UV(227)&
                &+JVS(1994)*UV(229)+JVS(2075)*UV(230)+JVS(2114)*UV(231)+JVS(2250)*UV(232)
  JTUV(226) = JVS(895)*UV(185)+JVS(979)*UV(189)+JVS(1147)*UV(203)+JVS(1265)*UV(209)+JVS(1592)*UV(226)+JVS(1879)*UV(228)&
                &+JVS(2076)*UV(230)+JVS(2251)*UV(232)
  JTUV(227) = JVS(95)*UV(40)+JVS(152)*UV(54)+JVS(156)*UV(55)+JVS(188)*UV(63)+JVS(196)*UV(65)+JVS(200)*UV(66)+JVS(250)&
                &*UV(78)+JVS(254)*UV(79)+JVS(279)*UV(85)+JVS(299)*UV(90)+JVS(307)*UV(92)+JVS(319)*UV(95)+JVS(323)*UV(96)&
                &+JVS(327)*UV(97)+JVS(331)*UV(98)+JVS(335)*UV(99)+JVS(348)*UV(102)+JVS(352)*UV(103)+JVS(376)*UV(107)&
                &+JVS(390)*UV(110)+JVS(423)*UV(118)+JVS(432)*UV(120)+JVS(467)*UV(128)+JVS(494)*UV(132)+JVS(505)*UV(134)&
                &+JVS(525)*UV(138)+JVS(545)*UV(141)+JVS(550)*UV(142)+JVS(560)*UV(144)+JVS(565)*UV(145)+JVS(570)*UV(146)&
                &+JVS(575)*UV(147)+JVS(585)*UV(148)+JVS(594)*UV(149)+JVS(608)*UV(150)+JVS(616)*UV(151)+JVS(624)*UV(152)&
                &+JVS(638)*UV(154)+JVS(649)*UV(155)+JVS(655)*UV(156)+JVS(663)*UV(157)+JVS(670)*UV(158)+JVS(680)*UV(160)&
                &+JVS(687)*UV(161)+JVS(697)*UV(163)+JVS(713)*UV(165)+JVS(720)*UV(166)+JVS(731)*UV(167)+JVS(739)*UV(168)&
                &+JVS(749)*UV(169)+JVS(757)*UV(170)+JVS(781)*UV(173)+JVS(787)*UV(174)+JVS(797)*UV(176)+JVS(802)*UV(177)&
                &+JVS(808)*UV(178)+JVS(819)*UV(179)+JVS(833)*UV(180)+JVS(840)*UV(181)+JVS(853)*UV(182)+JVS(864)*UV(183)&
                &+JVS(872)*UV(184)+JVS(905)*UV(186)+JVS(929)*UV(187)+JVS(938)*UV(188)+JVS(980)*UV(189)+JVS(990)*UV(190)&
                &+JVS(1001)*UV(191)+JVS(1008)*UV(192)+JVS(1038)*UV(193)+JVS(1048)*UV(194)+JVS(1057)*UV(195)+JVS(1071)&
                &*UV(196)+JVS(1079)*UV(197)+JVS(1089)*UV(198)+JVS(1114)*UV(199)+JVS(1121)*UV(200)+JVS(1132)*UV(201)&
                &+JVS(1139)*UV(202)+JVS(1148)*UV(203)+JVS(1158)*UV(204)+JVS(1166)*UV(205)+JVS(1217)*UV(206)+JVS(1229)&
                &*UV(207)+JVS(1239)*UV(208)+JVS(1266)*UV(209)+JVS(1276)*UV(210)+JVS(1308)*UV(211)+JVS(1321)*UV(212)&
                &+JVS(1337)*UV(213)+JVS(1347)*UV(214)+JVS(1370)*UV(215)+JVS(1379)*UV(216)+JVS(1405)*UV(217)+JVS(1413)&
                &*UV(218)+JVS(1458)*UV(219)+JVS(1489)*UV(220)+JVS(1500)*UV(221)+JVS(1518)*UV(222)+JVS(1533)*UV(223)&
                &+JVS(1548)*UV(224)+JVS(1570)*UV(225)+JVS(1593)*UV(226)+JVS(1662)*UV(227)+JVS(1880)*UV(228)+JVS(1996)&
                &*UV(229)+JVS(2077)*UV(230)+JVS(2116)*UV(231)+JVS(2252)*UV(232)
  JTUV(228) = JVS(13)*UV(5)+JVS(17)*UV(6)+JVS(21)*UV(8)+JVS(24)*UV(9)+JVS(26)*UV(10)+JVS(28)*UV(11)+JVS(30)*UV(12)&
                &+JVS(32)*UV(13)+JVS(34)*UV(14)+JVS(36)*UV(15)+JVS(38)*UV(16)+JVS(40)*UV(17)+JVS(42)*UV(18)+JVS(44)*UV(19)&
                &+JVS(46)*UV(20)+JVS(48)*UV(21)+JVS(50)*UV(22)+JVS(52)*UV(23)+JVS(54)*UV(24)+JVS(56)*UV(25)+JVS(58)*UV(26)&
                &+JVS(60)*UV(27)+JVS(62)*UV(28)+JVS(64)*UV(29)+JVS(66)*UV(30)+JVS(68)*UV(31)+JVS(74)*UV(33)+JVS(79)*UV(35)&
                &+JVS(82)*UV(36)+JVS(85)*UV(37)+JVS(89)*UV(38)+JVS(93)*UV(39)+JVS(96)*UV(40)+JVS(99)*UV(41)+JVS(102)*UV(42)&
                &+JVS(105)*UV(43)+JVS(108)*UV(44)+JVS(114)*UV(45)+JVS(117)*UV(46)+JVS(121)*UV(47)+JVS(126)*UV(48)+JVS(130)&
                &*UV(49)+JVS(135)*UV(50)+JVS(140)*UV(51)+JVS(148)*UV(53)+JVS(153)*UV(54)+JVS(157)*UV(55)+JVS(160)*UV(56)&
                &+JVS(164)*UV(57)+JVS(168)*UV(58)+JVS(172)*UV(59)+JVS(176)*UV(60)+JVS(180)*UV(61)+JVS(184)*UV(62)+JVS(189)&
                &*UV(63)+JVS(192)*UV(64)+JVS(197)*UV(65)+JVS(201)*UV(66)+JVS(204)*UV(67)+JVS(208)*UV(68)+JVS(212)*UV(69)&
                &+JVS(216)*UV(70)+JVS(220)*UV(71)+JVS(224)*UV(72)+JVS(228)*UV(73)+JVS(231)*UV(74)+JVS(236)*UV(75)+JVS(243)&
                &*UV(76)+JVS(246)*UV(77)+JVS(251)*UV(78)+JVS(255)*UV(79)+JVS(259)*UV(80)+JVS(263)*UV(81)+JVS(267)*UV(82)&
                &+JVS(271)*UV(83)+JVS(275)*UV(84)+JVS(280)*UV(85)+JVS(283)*UV(86)+JVS(287)*UV(87)+JVS(291)*UV(88)+JVS(295)&
                &*UV(89)+JVS(300)*UV(90)+JVS(303)*UV(91)+JVS(308)*UV(92)+JVS(311)*UV(93)+JVS(315)*UV(94)+JVS(320)*UV(95)&
                &+JVS(324)*UV(96)+JVS(328)*UV(97)+JVS(332)*UV(98)+JVS(336)*UV(99)+JVS(339)*UV(100)+JVS(343)*UV(101)+JVS(349)&
                &*UV(102)+JVS(353)*UV(103)+JVS(356)*UV(104)+JVS(360)*UV(105)+JVS(368)*UV(106)+JVS(377)*UV(107)+JVS(381)&
                &*UV(108)+JVS(386)*UV(109)+JVS(391)*UV(110)+JVS(395)*UV(111)+JVS(399)*UV(112)+JVS(403)*UV(113)+JVS(407)&
                &*UV(114)+JVS(411)*UV(115)+JVS(415)*UV(116)+JVS(419)*UV(117)+JVS(424)*UV(118)+JVS(427)*UV(119)+JVS(433)&
                &*UV(120)+JVS(436)*UV(121)+JVS(441)*UV(122)+JVS(445)*UV(123)+JVS(449)*UV(124)+JVS(453)*UV(125)+JVS(457)&
                &*UV(126)+JVS(463)*UV(127)+JVS(468)*UV(128)+JVS(472)*UV(129)+JVS(477)*UV(130)+JVS(484)*UV(131)+JVS(495)&
                &*UV(132)+JVS(501)*UV(133)+JVS(506)*UV(134)+JVS(510)*UV(135)+JVS(515)*UV(136)+JVS(520)*UV(137)+JVS(526)&
                &*UV(138)+JVS(533)*UV(139)+JVS(540)*UV(140)+JVS(546)*UV(141)+JVS(556)*UV(143)+JVS(586)*UV(148)+JVS(595)&
                &*UV(149)+JVS(609)*UV(150)+JVS(617)*UV(151)+JVS(625)*UV(152)+JVS(630)*UV(153)+JVS(639)*UV(154)+JVS(650)&
                &*UV(155)+JVS(656)*UV(156)+JVS(664)*UV(157)+JVS(671)*UV(158)+JVS(676)*UV(159)+JVS(681)*UV(160)+JVS(688)&
                &*UV(161)+JVS(693)*UV(162)+JVS(698)*UV(163)+JVS(703)*UV(164)+JVS(714)*UV(165)+JVS(732)*UV(167)+JVS(740)&
                &*UV(168)+JVS(750)*UV(169)+JVS(765)*UV(171)+JVS(788)*UV(174)+JVS(793)*UV(175)+JVS(809)*UV(178)+JVS(820)&
                &*UV(179)+JVS(834)*UV(180)+JVS(841)*UV(181)+JVS(854)*UV(182)+JVS(865)*UV(183)+JVS(873)*UV(184)+JVS(897)&
                &*UV(185)+JVS(906)*UV(186)+JVS(930)*UV(187)+JVS(939)*UV(188)+JVS(981)*UV(189)+JVS(991)*UV(190)+JVS(1002)&
                &*UV(191)+JVS(1009)*UV(192)+JVS(1039)*UV(193)+JVS(1049)*UV(194)+JVS(1072)*UV(196)+JVS(1080)*UV(197)&
                &+JVS(1090)*UV(198)+JVS(1115)*UV(199)+JVS(1122)*UV(200)+JVS(1133)*UV(201)+JVS(1140)*UV(202)+JVS(1149)&
                &*UV(203)+JVS(1159)*UV(204)+JVS(1218)*UV(206)+JVS(1230)*UV(207)+JVS(1240)*UV(208)+JVS(1267)*UV(209)&
                &+JVS(1277)*UV(210)+JVS(1309)*UV(211)+JVS(1322)*UV(212)+JVS(1338)*UV(213)+JVS(1348)*UV(214)+JVS(1371)&
                &*UV(215)+JVS(1380)*UV(216)+JVS(1406)*UV(217)+JVS(1414)*UV(218)+JVS(1459)*UV(219)+JVS(1490)*UV(220)&
                &+JVS(1501)*UV(221)+JVS(1519)*UV(222)+JVS(1534)*UV(223)+JVS(1549)*UV(224)+JVS(1571)*UV(225)+JVS(1594)&
                &*UV(226)+JVS(1663)*UV(227)+JVS(1881)*UV(228)+JVS(1997)*UV(229)+JVS(2078)*UV(230)+JVS(2117)*UV(231)&
                &+JVS(2253)*UV(232)
  JTUV(229) = JVS(70)*UV(32)+JVS(77)*UV(34)+JVS(122)*UV(47)+JVS(131)*UV(49)+JVS(144)*UV(52)+JVS(232)*UV(74)+JVS(288)&
                &*UV(87)+JVS(396)*UV(111)+JVS(400)*UV(112)+JVS(416)*UV(116)+JVS(428)*UV(119)+JVS(437)*UV(121)+JVS(442)&
                &*UV(122)+JVS(458)*UV(126)+JVS(464)*UV(127)+JVS(552)*UV(142)+JVS(766)*UV(171)+JVS(773)*UV(172)+JVS(783)&
                &*UV(173)+JVS(898)*UV(185)+JVS(1003)*UV(191)+JVS(1081)*UV(197)+JVS(1091)*UV(198)+JVS(1150)*UV(203)+JVS(1310)&
                &*UV(211)+JVS(1460)*UV(219)+JVS(1502)*UV(221)+JVS(1520)*UV(222)+JVS(1664)*UV(227)+JVS(1882)*UV(228)&
                &+JVS(1998)*UV(229)+JVS(2079)*UV(230)+JVS(2254)*UV(232)
  JTUV(230) = JVS(71)*UV(32)+JVS(118)*UV(46)+JVS(123)*UV(47)+JVS(127)*UV(48)+JVS(132)*UV(49)+JVS(378)*UV(107)+JVS(382)&
                &*UV(108)+JVS(387)*UV(109)+JVS(392)*UV(110)+JVS(429)*UV(119)+JVS(438)*UV(121)+JVS(496)*UV(132)+JVS(511)&
                &*UV(135)+JVS(557)*UV(143)+JVS(561)*UV(144)+JVS(566)*UV(145)+JVS(571)*UV(146)+JVS(576)*UV(147)+JVS(587)&
                &*UV(148)+JVS(596)*UV(149)+JVS(610)*UV(150)+JVS(618)*UV(151)+JVS(626)*UV(152)+JVS(631)*UV(153)+JVS(640)&
                &*UV(154)+JVS(651)*UV(155)+JVS(657)*UV(156)+JVS(665)*UV(157)+JVS(672)*UV(158)+JVS(677)*UV(159)+JVS(689)&
                &*UV(161)+JVS(694)*UV(162)+JVS(699)*UV(163)+JVS(704)*UV(164)+JVS(715)*UV(165)+JVS(722)*UV(166)+JVS(733)&
                &*UV(167)+JVS(741)*UV(168)+JVS(752)*UV(169)+JVS(759)*UV(170)+JVS(767)*UV(171)+JVS(784)*UV(173)+JVS(789)&
                &*UV(174)+JVS(794)*UV(175)+JVS(798)*UV(176)+JVS(803)*UV(177)+JVS(810)*UV(178)+JVS(822)*UV(179)+JVS(836)&
                &*UV(180)+JVS(842)*UV(181)+JVS(855)*UV(182)+JVS(866)*UV(183)+JVS(874)*UV(184)+JVS(899)*UV(185)+JVS(907)&
                &*UV(186)+JVS(932)*UV(187)+JVS(940)*UV(188)+JVS(983)*UV(189)+JVS(992)*UV(190)+JVS(1004)*UV(191)+JVS(1010)&
                &*UV(192)+JVS(1041)*UV(193)+JVS(1050)*UV(194)+JVS(1059)*UV(195)+JVS(1073)*UV(196)+JVS(1082)*UV(197)&
                &+JVS(1092)*UV(198)+JVS(1116)*UV(199)+JVS(1123)*UV(200)+JVS(1135)*UV(201)+JVS(1141)*UV(202)+JVS(1151)&
                &*UV(203)+JVS(1160)*UV(204)+JVS(1168)*UV(205)+JVS(1220)*UV(206)+JVS(1231)*UV(207)+JVS(1241)*UV(208)&
                &+JVS(1269)*UV(209)+JVS(1278)*UV(210)+JVS(1311)*UV(211)+JVS(1323)*UV(212)+JVS(1339)*UV(213)+JVS(1349)&
                &*UV(214)+JVS(1372)*UV(215)+JVS(1381)*UV(216)+JVS(1407)*UV(217)+JVS(1415)*UV(218)+JVS(1461)*UV(219)&
                &+JVS(1492)*UV(220)+JVS(1503)*UV(221)+JVS(1536)*UV(223)+JVS(1551)*UV(224)+JVS(1573)*UV(225)+JVS(1596)&
                &*UV(226)+JVS(1665)*UV(227)+JVS(1883)*UV(228)+JVS(1999)*UV(229)+JVS(2080)*UV(230)+JVS(2119)*UV(231)&
                &+JVS(2255)*UV(232)
  JTUV(231) = JVS(900)*UV(185)+JVS(984)*UV(189)+JVS(1312)*UV(211)+JVS(1462)*UV(219)+JVS(1884)*UV(228)+JVS(2081)*UV(230)&
                &+JVS(2120)*UV(231)+JVS(2256)*UV(232)
  JTUV(232) = JVS(14)*UV(5)+JVS(145)*UV(52)+JVS(149)*UV(53)+JVS(161)*UV(56)+JVS(165)*UV(57)+JVS(169)*UV(58)+JVS(173)&
                &*UV(59)+JVS(177)*UV(60)+JVS(181)*UV(61)+JVS(185)*UV(62)+JVS(193)*UV(64)+JVS(205)*UV(67)+JVS(209)*UV(68)&
                &+JVS(213)*UV(69)+JVS(217)*UV(70)+JVS(221)*UV(71)+JVS(225)*UV(72)+JVS(229)*UV(73)+JVS(233)*UV(74)+JVS(237)&
                &*UV(75)+JVS(260)*UV(80)+JVS(264)*UV(81)+JVS(268)*UV(82)+JVS(272)*UV(83)+JVS(276)*UV(84)+JVS(284)*UV(86)&
                &+JVS(292)*UV(88)+JVS(296)*UV(89)+JVS(304)*UV(91)+JVS(312)*UV(93)+JVS(316)*UV(94)+JVS(340)*UV(100)+JVS(344)&
                &*UV(101)+JVS(357)*UV(104)+JVS(361)*UV(105)+JVS(369)*UV(106)+JVS(404)*UV(113)+JVS(408)*UV(114)+JVS(412)&
                &*UV(115)+JVS(420)*UV(117)+JVS(446)*UV(123)+JVS(450)*UV(124)+JVS(454)*UV(125)+JVS(473)*UV(129)+JVS(478)&
                &*UV(130)+JVS(502)*UV(133)+JVS(516)*UV(136)+JVS(521)*UV(137)+JVS(562)*UV(144)+JVS(567)*UV(145)+JVS(572)&
                &*UV(146)+JVS(577)*UV(147)+JVS(652)*UV(155)+JVS(658)*UV(156)+JVS(666)*UV(157)+JVS(700)*UV(163)+JVS(723)&
                &*UV(166)+JVS(742)*UV(168)+JVS(760)*UV(170)+JVS(790)*UV(174)+JVS(799)*UV(176)+JVS(804)*UV(177)+JVS(811)&
                &*UV(178)+JVS(843)*UV(181)+JVS(867)*UV(183)+JVS(875)*UV(184)+JVS(908)*UV(186)+JVS(941)*UV(188)+JVS(993)&
                &*UV(190)+JVS(1005)*UV(191)+JVS(1011)*UV(192)+JVS(1060)*UV(195)+JVS(1083)*UV(197)+JVS(1093)*UV(198)&
                &+JVS(1117)*UV(199)+JVS(1124)*UV(200)+JVS(1142)*UV(202)+JVS(1152)*UV(203)+JVS(1161)*UV(204)+JVS(1169)&
                &*UV(205)+JVS(1232)*UV(207)+JVS(1242)*UV(208)+JVS(1270)*UV(209)+JVS(1279)*UV(210)+JVS(1313)*UV(211)&
                &+JVS(1324)*UV(212)+JVS(1340)*UV(213)+JVS(1350)*UV(214)+JVS(1373)*UV(215)+JVS(1382)*UV(216)+JVS(1408)&
                &*UV(217)+JVS(1416)*UV(218)+JVS(1463)*UV(219)+JVS(1493)*UV(220)+JVS(1504)*UV(221)+JVS(1522)*UV(222)&
                &+JVS(1537)*UV(223)+JVS(1552)*UV(224)+JVS(1574)*UV(225)+JVS(1667)*UV(227)+JVS(1885)*UV(228)+JVS(2001)&
                &*UV(229)+JVS(2082)*UV(230)+JVS(2257)*UV(232)
END SUBROUTINE JacTR_SP_Vec
END MODULE crimech_Jacobian


      subroutine minmax2(m,n,i,j,k,l)

      i = min(m,n)
      j = min0(m,n)

      k = max(m,n)
      l = max0(m,n)

      print *, i, j, k, l

      i = min(i, j, k, l, m, n)

      print *, i

      end


! binenc_test.f90 -- a test program for binenc_mod
!
! Copyright (C) 2008 Jason Blevins <jrblevin@sdf.lonestar.org>
! All rights reserved.
!
! This software may be modified and distributed under the terms
! of the BSD license.  See the LICENSE file for details.
!
! Description:
!
! A short program which tests for correctness of the encoding
! algorithm by encoding and decoding several state vectors and
! checking for differences.  It also prints the full encoding table.

program binenc_test
  use binenc_mod
  implicit none

  integer, parameter :: N = 5
  integer, parameter :: M = 6
  integer, parameter :: ntest = 10

  integer, dimension(ntest,N) :: x
  integer, dimension(N) :: diff
  integer :: i, y

  print "('Encode-decode tests',/,'===================',/)"

  ! Encode and decode several test vectors.  These are sorted vectors
  ! of length N with elements in [ 1, 1, ..., M ].
  x(1,:)  = (/ 0, 0, 0, 0, 0 /)
  x(2,:)  = (/ 6, 6, 6, 6, 6 /)
  x(3,:)  = (/ 2, 2, 1, 1, 0 /)
  x(4,:)  = (/ 1, 1, 1, 1, 0 /)
  x(5,:)  = (/ 6, 0, 0, 0, 0 /)
  x(6,:)  = (/ 5, 4, 3, 2, 1 /)
  x(7,:)  = (/ 6, 4, 4, 4, 0 /)
  x(8,:)  = (/ 4, 0, 0, 0, 0 /)
  x(9,:)  = (/ 6, 6, 2, 2, 0 /)
  x(10,:) = (/ 3, 3, 1, 0, 0 /)

  call binenc_init(N, M)                          ! initialize the table

  do i = 1, ntest
     write (*, "('Test ', i2, '...')", advance="no") i

     y = encode(x(i,:))                           ! encode
     diff = x(i,:) - decode(y)                    ! difference (want zero)

     if (all(diff == 0)) then                     ! pass if difference is zero
        print *, "PASSED!"
     else
        print *, "FAILED!"
     end if
  end do

  ! Print the encoding table
  print "(/,'Encoding table',/,'==============',/)"
  do i = 0, n_state
     diff = decode(i)
     print '(6i4)', diff
  end do

  call binenc_free()                              ! free memory

end program binenc_test


module Mod_tem_Advection
   use typre
   use Mod_tem_BaseElmope
   implicit none
  private
   public SetPointersAdvectionVelocity

   !External Procedures
   procedure() :: NULLSUB

   integer(ip), allocatable :: kfl_IsSet

contains

   subroutine SetPointersAdvectionVelocity(itask)
      implicit none
      integer(ip) :: itask
      select case (itask)

      case(0)
         allocate(kfl_IsSet)
         call a%Memor%allocObj(0,'kfl_IsSet','InitProcedurePointer',1)
         kfl_IsSet = -1

      case(1)
         if (kfl_IsSet == -1) then
            kfl_IsSet = 1

            !--------------------------------------------------------------------
            !Advection
            if (a%kfl_advec /= 0) then
               !External velocity
               if (a%kfl_advec == 1) then
                  call ConcatenateProcedures(ProcHook%Gathers,GatherExternalVeloc)
                  call ConcatenateProcedures(ProcHook%Interpolates,VelocInterpolates)

                  if (a%kfl_ExternalAdvectionSGS == 1) then
                     call ConcatenateProcedures(ProcHook%Interpolates,VelocSGSInterpolates)
                  endif

               !Burgers equation
               elseif (a%kfl_advec == 9) then
                  call ConcatenateProcedures(ProcHook%Interpolates,BurgersVeloc)

               !Analytical velocity
               else
                  call ConcatenateProcedures(ProcHook%Interpolates,GaussPointAnalyticalVeloc)
               endif
               call ConcatenateProcedures(ProcPointer%VelocityAndAgradV,VelocityNormAndAGradV)
            endif

         endif

      case(100)
         deallocate(kfl_IsSet)
         call a%Memor%deallocObj(0,'kfl_IsSet','InitProcedurePointer',1)

      end select
   end subroutine

   !--------------------------------------------------------------------
   !Actual computations
   subroutine GatherExternalVeloc
      !Gathers
      call e%gather(e%ndime,elvel(:,:),a%veloc(:,:))
   end subroutine

   subroutine VelocInterpolates
      !Interpolate
      call e%interpg(e%ndime,elvel(:,:),gpvel(:))
      gpadv(1:e%ndime) = gpvel(1:e%ndime)
   end subroutine

   subroutine VelocSGSInterpolates
      implicit none
      gpadv(1:e%ndime) = gpadv(1:e%ndime) + a%vesgs(ielem)%a(1:e%ndime,1,e%igaus)
   end subroutine

   subroutine VelocityNormAndAGradV
      implicit none

      !Advection velocity norm
      call vecnor(gpadv,e%ndime,gpvno,2)

      !Compute a·grad(V)
      call ComputeAGradV(e,gpadv,AGradV)
   end subroutine

   subroutine GaussPointAnalyticalVeloc
      implicit none

      call tem_elmvel(e,a%kfl_advec,gpvel)
      gpadv = gpvel
   end subroutine

   !Interpolation of the velocity gradient
   subroutine AllocGrvel
      implicit none

      call a%Memor%alloc(e%ndime,e%ndime,grvel,'grvel','tem_elmope')    !Vel. gradient
   end subroutine

   subroutine DeAllocGrvel
      implicit none

      call a%Memor%dealloc(e%ndime,e%ndime,grvel,'grvel','tem_elmope')    !Vel. gradient
   end subroutine

   subroutine InterpolateGrvel
      implicit none

      call e%gradient(e%ndime,elvel(:,:),grvel)    !Vel. gradient
   end subroutine

   subroutine BurgersVeloc
      implicit none

      gpvel = 0.0_rp
      gpvel(1) = gptem(1)
      gpadv = gpvel
   end subroutine

end module


program logical3
! This program checks logical operators
implicit none
logical :: a, b

! assigning values
a = .true.
b = .false.

if (a .and. b) then
    print *, "Line 1 - Condition is true"
    error stop
else
    print *, "Line 1 - Condition is false"
end if

if (a .or. b) then
    print *, "Line 2 - Condition is true"
else
    print *, "Line 2 - Condition is false"
    error stop
end if

if (a .xor. b) then
    print *, "Line xor - Condition is true"
else
    print *, "Line xor - Condition is false"
    error stop
end if

! changing values
a = .false.
b = .true.

if (.not.(a .and. b)) then
    print *, "Line 3 - Condition is true"
else
    print *, "Line 3 - Condition is false"
    error stop
end if

if (b .neqv. a) then
    print *, "Line 4 - Condition is true"
else
    print *, "Line 4 - Condition is false"
    error stop
end if

if (b .eqv. a) then
    print *, "Line 5 - Condition is true"
    error stop
else
    print *, "Line 5 - Condition is false"
end if

! changing values
a = .true.
b = .true.

if (a .and. b) then
    print *, "Line 6 - Condition is true"
else
    print *, "Line 6 - Condition is false"
    error stop
end if

if (a .or. b) then
    print *, "Line 7 - Condition is true"
else
    print *, "Line 7 - Condition is false"
    error stop
end if

if (a .xor. b) then
    print *, "Line 8 xor - Condition is true"
    error stop
else
    print *, "Line 8 xor - Condition is false"
end if

end program logical3


       function tenstore_2s(T)
        implicit none

        integer :: w
        type(Tensor2s), intent(in) :: T
        type(Tensor2) :: tenstore_2s
        integer :: i

        w = 1
        tenstore_2s%ab = 0.d0
        do i=1,3
         tenstore_2s%ab(i,i) = T%a6(i)
        enddo
        tenstore_2s%ab(1,2) = T%a6(4)/dble(w)
        tenstore_2s%ab(2,3) = T%a6(5)/dble(w)
        tenstore_2s%ab(3,1) = T%a6(6)/dble(w)
        tenstore_2s%ab(2,1) = tenstore_2s%ab(1,2)
        tenstore_2s%ab(3,2) = tenstore_2s%ab(2,3)
        tenstore_2s%ab(1,3) = tenstore_2s%ab(3,1)

       end function tenstore_2s

       function tenstore_2(T)
        implicit none

        integer :: w
        type(Tensor2), intent(in) :: T
        type(Tensor2) :: tenstore_2

        tenstore_2%ab = T%ab

       end function tenstore_2

       function tenstore_2a(T)
        implicit none

        real(kind=8), dimension(3,3), intent(in) :: T
        type(Tensor2) :: tenstore_2a

        tenstore_2a%ab = T

       end function tenstore_2a

       function tenstore_4(T)
        implicit none

        integer :: w
        type(Tensor4), intent(in) :: T
        type(Tensor4) :: tenstore_4

        tenstore_4%abcd = T%abcd

       end function tenstore_4

       function tenstore_4a(T)
        implicit none

        real(kind=8), dimension(3,3,3,3), intent(in) :: T
        type(Tensor4) :: tenstore_4a

        tenstore_4a%abcd = T

       end function tenstore_4a

       function tenstore_4s(T)
        implicit none

        integer :: w
        type(Tensor4s), intent(in) :: T
        type(Tensor4) :: tenstore_4s
        integer :: i,j,k,l
        integer, dimension(3,3) :: i6j6

        i6j6 = reshape( (/1,4,6, 4,2,5, 6,5,3/), (/3, 3/) )

        forall (i=1:3,j=1:3,k=1:3,l=1:3) tenstore_4s%abcd(i,j,k,l)
     *             = T%a6b6(i6j6(i,j),i6j6(k,l))

       end function tenstore_4s


subroutine EFT_size(PMU, NO3, tC, par_, muNet, QN, Theta, LSI, Lno3)
use bio_MOD
implicit none
!INPUT PARAMETERS:
real, intent(in)    :: PMU, NO3, tC, par_

!Output parameters:
real, intent(out)   :: muNet, QN, Theta, LSI, Lno3

!LOCAL VARIABLES of phytoplankton:
real :: X
real :: larg   !Environmental variables
real :: DFe_, K0Fe_
real :: V0hat,Kn,A0N,A0hat,fA,muIhat
real :: VNhat
real :: mu0hat,mu0hatSI,RMchl
real :: fV, SI
real :: ZINT
real :: aI
real :: Qs, ThetaHat
real :: larg1, W_Y
real :: alphaI = 0d0
real,    external  :: WAPR
!-----------------------------------------------------------------------
!Warning: All rates should be multiplied by dtdays to get the real rate
Ep      = 0.5
alphamu = params(ialphamu)
alphaI  = params(ialphaI)

tf_p    = TEMPBOL(Ep,tC)
zetaChl = 0.8 !params(izetaChl)
zetaN   = 0.6 !params(izetaN)

! Fe related:

if (do_IRON) then
   K0Fe_= params(iKFe)
   KFe  = ScaleTrait(PMU, K0Fe_,alphaFe) !The half saturation constant of Fe at average size
endif

!Qs      = ScaleTrait(PMU, params(iQ0N), params(ialphaQ))/2d0
Qs      = params(iQ0N)/2d0
mu0hat  = dtdays*tf_p*params(imu0)* exp(alphamu*PMU + betamu*PMU*PMU)

! X: a scratch variable
X       = 0d0
if (do_IRON) then
  mu0hat= mu0hat *DFe_/(DFe_ + KFe)
  X     = alphaFe*KFe /(DFe_ + KFe)
endif

  ! Iron limits nitrogen uptake
!  V0hat=ScaleTrait(PMU, dtdays*tf_p*V0N, alphaV)
V0hat=mu0hat

! Initial slope of P-I curve
aI = ScaleTrait(PMU, dtdays*params(iaI0), alphaI)

! Cost of photosynthesis
RMchl  = tf_p*RMchl0*dtdays
! Threshold irradiance and RMchl is set temperature dependent
I_zero = zetaChl*RMchl/aI

!Define VNhat: the saturation function of ambient nutrient concentration
SELECTCASE(nutrient_uptake)
! case 1: Classic Michaelis Menton
  case(1)
! Potential maximal nutrient-limited uptake
    ! Half-saturation constant of nitrate uptake
  Kn     = ScaleTrait(PMU, params(iKN), params(ialphaKN))
  VNhat  = V0hat*NO3/(NO3 + Kn)

! case 2: optimal uptake based on Pahlow (2005) and Smith et al. (2009)
  case(2)

  !  Lmin  = log((params(iLref)**3)/6d0*pi) &
  !  + log(1D0 +params(iPenfac))/( params(iPenfac)*params(ialphaA))

  A0N   = dtdays*tf_p*params(iA0N)
  A0hat = ScaleTrait(PMU, A0N, params(ialphaA))

  !  A0hat = PenAff(PMU, params(ialphaA), params(iPenfac),Lmin) &
  !   * ScaleTrait(PMU, A0N, params(ialphaA))

  A0hat = max(A0hat,1D-9*A0N)

  !Define fA
  fA    = 1D0/( 1D0 + sqrt(A0hat*NO3/V0hat) )
  VNhat = (1D0-fA)*V0hat*fA*A0hat*NO3/((1D0-fA)*V0hat + fA*A0hat*NO3)

  case default
   write(6,*) 'Error: Incorrect option for nutrient uptake!'
   stop
ENDSELECT

! Calculate thetahat (optimal g Chl/mol C for the chloroplast under nutrient replete conditions)
! Only calculate within the euphotic zone, otherwise many numerical problems.

if(par_ .gt. I_zero) then    !To avoid large C:Chl ratios

  larg1   = exp(1d0 + min(aI*par_/(mu0hat*zetaChl),6d2))
  larg    = (1d0 + RMchl/mu0hat)*larg1
 W_Y      = WAPR(larg)
 ThetaHat = 1d0/zetaChl + (1d0- W_Y)*mu0hat/(aI * par_)

  ! Effect of light limitation
  SI = 1d0 - max(exp(-aI*par_*ThetaHat/mu0hat),0d0)

! Light dependent growth rate
! (needs to take into account the cost of dark and light-dependent chl maintenance)
  mu0hatSI = mu0hat*SI  ! Gross specific carbon uptake (photosynthesis)
  muIhat   = mu0hatSI-(mu0hatSI+RMchl)*zetaChl*ThetaHat ! Net specific carbon uptake
  muIhat   = max(muIhat,1D-9*mu0hat)
  LSI      = 1D0-SI
  ZINT     = Qs*(muIhat/VNhat + zetaN)
  fV       = (-1d0 + sqrt(1d0 + 1d0/ZINT))*Qs*muIhat/VNhat
  fV       = max(fV,0.01)

  else
    ! Under the conditions of no light:

     ThetaHat      = 2d-2  !  a small positive value
     ZINT          = Qs*zetaN
     fV            = 1d-2
     muIhat        = 0d0
     LSI           = 1D0
  endif

  ! Nutrient limitation index:
  Lno3 =1d0/(1d0 + sqrt(1D0 +1D0/ZINT))
  ! Optimal nutrient quota:
  QN = Qs/Lno3

  if (par_ .gt. I_zero) then
!Net growth rate (d-1) of phytoplankton at the average size
   ! muNet = muIhat*(1d0-fV-Qs/QN) - zetaN*fV*VNhat
    muNet = muIhat*(1d0-2d0*Lno3)
  else
    muNet = 0d0
  endif
! Chl:C ratio [ g chl / mol C ] of the whole cell
  Theta  = ThetaHat*(1D0-fV-Qs/QN)

! Phytoplankton sinking rate at the average size
! (should not normalize to dtdays)
   !w_p    = ScaleTrait(PMU,abs(w_p0),alphaW)  !Positive
! Constrain the sinking rate not too large for large cells (Smayda 1970)
   !wPHY   = min(w_p, Wmax)
end subroutine EFT_size


      subroutine hydroinit

!!    ~ ~ ~ PURPOSE ~ ~ ~
!!    This subroutine computes variables related to the watershed hydrology:
!!    the time of concentration for the subbasins, lagged surface runoff,
!!    the coefficient for the peak runoff rate equation, and lateral flow travel
!!    time.

!!    ~ ~ ~ INCOMING VARIABLES ~ ~ ~1
!!    name        |units         |definition
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!!    ch_l1(:)    |km            |longest tributary channel length in subbasin
!!    ch_l2(:)    |km            |main channel length in subbasin
!!    ch_n(1,:)   |none          |Manning's "n" value for the tributary channels
!!    ch_s(1,:)   |m/m           |average slope of tributary channels
!!    da_km       |km2           |area of the watershed in square kilometers
!!    gdrain(:)   |hrs           |drain tile lag time: the amount of time
!!                               |between the transfer of water from the soil
!!                               |to the drain tile and the release of the
!!                               |water from the drain tile to the reach.
!!    hru_dafr(:) |km2/km2       |fraction of total watershed area contained
!!                               |in HRU
!!    hru_km(:)   |km2           |area of HRU in square kilometers
!!    hru_slp(:)  |m/m           |average slope steepness
!!    hru_sub(:)  |none          |subbasin in which HRU is located
!!    lat_ttime(:)|days          |lateral flow travel time
!!   tile_ttime(:)|none          |Exponential of the tile flow travel time
!!    ldrain(:)   |none          |soil layer where drainage tile is located
!!    nhru        |none          |number of HRUs in watershed
!!    ov_n(:)     |none          |Manning's "n" value for overland flow
!!    slsoil(:)   |m             |slope length for lateral subsurface flow
!!    slsubbsn(:) |m             |average slope length for subbasin
!!    sol_k(:,:)  |mm/hr         |saturated hydraulic conductivity of soil
!!                               |layer
!!    sol_nly(:)  |none          |number of layers in soil profile
!!    sub_fr(:)   |none          |fraction of total watershed area contained in
!!                               |subbasin
!!    surlag      |days          |Surface runoff lag time.
!!                               |This parameter is needed in subbasins where
!!                               |the time of concentration is greater than 1
!!                               |day. SURLAG is used to create a "storage" for
!!                               |surface runoff to allow the runoff to take
!!                               |longer than 1 day to reach the subbasin outlet
!!    tconc(:)     |hr           |time of concentration
!!    uhalpha      |             |alpha coefficient for estimating unit hydrograph
!!                               |using a gamma function (*.bsn)
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

!!    ~ ~ ~ OUTGOING VARIABLES ~ ~ ~
!!    name        |units         |definition
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!!    brt(:)      |none          |fraction of surface runoff within the subbasin
!!                               |which takes 1 day or less to reach the
!!                               |subbasin outlet
!!    lat_ttime(:)|none          |Exponential of the lateral flow travel time
!!   tile_ttime(:)|none          |Exponential of the tile flow travel time
!!    sub_tc(:)   |hr            |time of concentration for subbasin
!!    t_ov(:)     |hr            |time for flow from farthest point in subbasin
!!                               |to enter a channel
!!    tconc(:)    |hr            |time of concentration for HRU
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

!!    ~ ~ ~ LOCAL DEFINITIONS ~ ~ ~
!!    name        |units         |definition
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
!!    j           |none          |counter
!!    l           |none          |counter
!!    scmx        |mm/hr         |maximum soil hydraulic conductivity
!!    t_ch        |hr            |time for flow entering the farthest upstream
!!                               |channel to reach the subbasin outlet
!!    xx          |none          |variable to hold calculation result
!!    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

!!    ~ ~ ~ SUBROUTINES/FUNCTIONS CALLED ~ ~ ~
!!    SWAT: Ttcoef

!!    ~ ~ ~ ~ ~ ~ END SPECIFICATIONS ~ ~ ~ ~ ~ ~

      use parm

      integer :: j, l
      real :: t_ch, scmx, xx

      do j = 1, nhru

!! subbasin !!
!!    compute time of concentration (sum of overland and channel times)
        t_ch = 0
        t_ov(j) = .0556 * (slsubbsn(j)*ov_n(j)) ** .6 / hru_slp(j) ** .3
        t_ch = .62 * ch_l1(j) * ch_n(1,hru_sub(j)) ** .75 /
     &      ((da_km * sub_fr(hru_sub(j)))**.125 *
     &                                         ch_s(1,hru_sub(j))**.375)
        sub_tc(hru_sub(j)) = t_ov(j) + t_ch
!! end subbasin !!

!! HRU !!
!!    compute time of concentration (sum of overland and channel times)
        t_ch = 0
        ch_l1(j) = ch_l1(j) * hru_dafr(j) / sub_fr(hru_sub(j))
        t_ov(j) = .0556 * (slsubbsn(j)*ov_n(j)) ** .6 / hru_slp(j) ** .3
        t_ch = .62 * ch_l1(j) * ch_n(1,hru_sub(j)) ** .75 /
     &              ((da_km*hru_dafr(j))**.125*ch_s(1,hru_sub(j))**.375)
        tconc(j) = t_ov(j) + t_ch

!!    compute delivery ratio
      rto = tconc(j) / sub_tc(hru_sub(j))
      dr_sub(j) = amin1(.95,rto ** .5)

!!    compute fraction of surface runoff that is reaching the main channel
        if (ievent > 0) then
           brt(j) = 1. - Exp(-surlag(j) / (tconc(j) / (idt / 60.)))	!! urban modeling by J.Jeong
        else
           brt(j) = 1. - Exp(-surlag(j) / tconc(j))
        endif
        if (isproj == 2) brt(j) = 1.

!!    compute lateral flow travel time
        if (lat_ttime(j) <= 0.) then
            scmx = 0.
            do l = 1, sol_nly(j)
              if (sol_k(l,j) > scmx) then
                scmx = sol_k(l,j)
              endif
            end do
            !! unit conversion:
            !! xx = m/(mm/h) * 1000.(mm/m)/24.(h/d) / 4.
            xx = 0.
            xx = 10.4 * slsoil(j) / scmx
            lat_ttime(j) = 1. - Exp(-1./xx)
        else
          lat_ttime(j) = 1. - Exp(-1./lat_ttime(j))
        end if

        if (ldrain(j) > 0 .and. gdrain(j) > 0.01) then
            tile_ttime(j) = 1. - Exp(-24. / gdrain(j))
        else
            tile_ttime(j) = 0.
        end if

!!    compute routing coefficients for main channel
        if (ch_l2(hru_sub(j)) > 0.) call ttcoef(hru_sub(j))
        if (j == hru1(hru_sub(j))) then
          if (alpha_bnk(hru_sub(j)) <= 0.) then
            alpha_bnk(hru_sub(j)) = alpha_bf(j)
          end if
          alpha_bnke(hru_sub(j)) = Exp(-alpha_bnk(hru_sub(j)))
        end if

      end do

      if (ievent > 0) then
!!    compute unit hydrograph for computing subbasin hydrograph from direct runoff

      do isb = 1, msub
        ql = 0.
        sumq = 0.

        tb = .5 + .6 * sub_tc(isb) + tb_adj  !baseflow time, hr

        if (tb > 48.) tb = 48.			   !maximum 48hrs
        tp = .375 * tb						! time to peak flow

	  !! convert to time step (from hr), J.Jeong March 2009
	  tb = ceiling(tb * 60./ real(idt))
	  tp = int(tp * 60./ real(idt))

	  if(tp==0) tp = 1
	  if(tb==tp) tb = tb + 1
	  itb(isb) = int(tb)

	  ! Triangular Unit Hydrograph
	  if (iuh==1) then
	    do i = 1, itb(isb)
            xi = float(i)
 	      if (xi < tp) then           !! rising limb of hydrograph
              q = xi / tp
            else                        !! falling limb of hydrograph
              q = (tb - xi) / (tb - tp)
            end if
            q = Max(0.,q)
            uh(isb,i) = (q + ql) / 2.
            ql = q
            sumq = sumq + uh(isb,i)
          end do

		do i = 1, itb(isb)
            uh(isb,i) = uh(isb,i) / sumq
          end do

	  ! Gamma Function Unit Hydrograph
	  elseif (iuh==2) then
          i = 1; q=1.
		do while (q>0.0001)
            xi = float(i)
		   q = (xi / tp) ** uhalpha * exp((1.- xi / tp) * uhalpha)
            q = Max(0.,q)
            uh(isb,i) = (q + ql) / 2.
            ql = q
            sumq = sumq + uh(isb,i)
	      i = i + 1
	      if (i>3.*nstep) exit
	    end do
	    itb(isb) = i - 1
		  do i = 1, itb(isb)
            uh(isb,i) = uh(isb,i) / sumq
          end do
	  endif

      end do
      end if

      return
      end