!
!
! From: C.A. Kennedy and M.H. Carpenter, Singly-implicit Runge–Kutta methods
! for stiff ordinary differential equations, NASA/TM-2025-000xxxx (2025).
!
! Note:  All simulations in SIRK paper were performed using 128-bit arithematic,  i.e.

      integer, parameter :: wp = 16

!      if using only 64-bit change to  :: wp = 8  or alternatively   _wp ->  d0
            
!===================================================================================================================120
!===================================================================================================================120
      casename='ESDIRK437L[2]SA'           !  'ESDIRK4(3)7L[2]SA'  (page 100, TM-2016-219173, kennedy2019b)
!===================================================================================================================120
!===================================================================================================================120

      ns=7

      be(1) = -5649241495537.0_wp/14093099002237.0_wp
      be(2) = -5649241495537.0_wp/14093099002237.0_wp
      be(3) = 5718691255176.0_wp/6089204655961.0_wp
      be(4) = 2199600963556.0_wp/4241893152925.0_wp
      be(5) = 8860614275765.0_wp/11425531467341.0_wp
      be(6) = -3696041814078.0_wp/6641566663007.0_wp
      be(7) = 1.0_wp/8.0_wp
      ce(1) = 0.0_wp/1.0_wp
      ce(2) = 1.0_wp/4.0_wp
      ce(3) = 1200237871921.0_wp/16391473681546.0_wp
      ce(4) = 1.0_wp/2.0_wp
      ce(5) = 395.0_wp/567.0_wp
      ce(6) = 89.0_wp/126.0_wp
      ce(7) = 1.0_wp/1.0_wp
      beh(1) = -1517409284625.0_wp/6267517876163.0_wp
      beh(2) = -1517409284625.0_wp/6267517876163.0_wp
      beh(3) = 8291371032348.0_wp/12587291883523.0_wp
      beh(4) = 5328310281212.0_wp/10646448185159.0_wp
      beh(5) = 5405006853541.0_wp/7104492075037.0_wp
      beh(6) = -4254786582061.0_wp/7445269677723.0_wp
      beh(7) = 19.0_wp/140.0_wp
      aI(1,1) = 0.0_wp/1.0_wp
      aI(2,1) = 1.0_wp/8.0_wp
      aI(2,2) = 1.0_wp/8.0_wp
      aI(3,1) = -39188347878.0_wp/1513744654945.0_wp
      aI(3,2) = -39188347878.0_wp/1513744654945.0_wp
      aI(3,3) = 1.0_wp/8.0_wp
      aI(4,1) = 1748874742213.0_wp/5168247530883.0_wp
      aI(4,2) = 1748874742213.0_wp/5168247530883.0_wp
      aI(4,3) = -1748874742213.0_wp/5795261096931.0_wp
      aI(4,4) = 1.0_wp/8.0_wp
      aI(5,1) = -6429340993097.0_wp/17896796106705.0_wp
      aI(5,2) = -6429340993097.0_wp/17896796106705.0_wp
      aI(5,3) = 9711656375562.0_wp/10370074603625.0_wp
      aI(5,4) = 1137589605079.0_wp/3216875020685.0_wp
      aI(5,5) = 1.0_wp/8.0_wp
      aI(6,1) = 405169606099.0_wp/1734380148729.0_wp
      aI(6,2) = 405169606099.0_wp/1734380148729.0_wp
      aI(6,3) = -264468840649.0_wp/6105657584947.0_wp
      aI(6,4) = 118647369377.0_wp/6233854714037.0_wp
      aI(6,5) = 683008737625.0_wp/4934655825458.0_wp
      aI(6,6) = 1.0_wp/8.0_wp
      aI(7,1) = -5649241495537.0_wp/14093099002237.0_wp
      aI(7,2) = -5649241495537.0_wp/14093099002237.0_wp
      aI(7,3) = 5718691255176.0_wp/6089204655961.0_wp
      aI(7,4) = 2199600963556.0_wp/4241893152925.0_wp
      aI(7,5) = 8860614275765.0_wp/11425531467341.0_wp
      aI(7,6) = -3696041814078.0_wp/6641566663007.0_wp
      aI(7,7) = 1.0_wp/8.0_wp

!===================================================================================================================120
!===================================================================================================================120
      casename='ESDIRK548L[2]SA'         ! 'ESDIRK5(4)8L[2]SA'  (2019 paper)
!===================================================================================================================120
!===================================================================================================================120

      ns=8
 
      be(1) = 2162042939093.0_wp/22873479087181.0_wp
      be(2) = 2162042939093.0_wp/22873479087181.0_wp
      be(3) = -4222515349147.0_wp/9397994281350.0_wp
      be(4) = 3431955516634.0_wp/4748630552535.0_wp
      be(5) = -374165068070.0_wp/9085231819471.0_wp
      be(6) = -1847934966618.0_wp/8254951855109.0_wp
      be(7) = 5186241678079.0_wp/7861334770480.0_wp
      be(8) = 1.0_wp/7.0_wp
      ce(1) = 0.0_wp/1.0_wp
      ce(2) = 2.0_wp/7.0_wp
      ce(3) = (2.0_wp + sqrt(2.0_wp))/7.0_wp
      ce(4) = 150.0_wp/203.0_wp
      ce(5) = 27.0_wp/46.0_wp
      ce(6) = 473.0_wp/532.0_wp
      ce(7) = 30.0_wp/83.0_wp
      ce(8) = 1.0_wp/1.0_wp
      beh(1) = 701879993119.0_wp/7084679725724.0_wp
      beh(2) = 701879993119.0_wp/7084679725724.0_wp
      beh(3) = -8461269287478.0_wp/14654112271769.0_wp
      beh(4) = 6612459227430.0_wp/11388259134383.0_wp
      beh(5) = 2632441606103.0_wp/12598871370240.0_wp
      beh(6) = -2147694411931.0_wp/10286892713802.0_wp
      beh(7) = 4103061625716.0_wp/6371697724583.0_wp
      beh(8) = 36.0_wp/233.0_wp
      aI(1,1) = 0.0_wp/1.0_wp
      aI(2,1) = 1.0_wp/7.0_wp
      aI(2,2) = 1.0_wp/7.0_wp
      aI(3,1) = 1521428834970.0_wp/8822750406821.0_wp
      aI(3,2) = 1521428834970.0_wp/8822750406821.0_wp
      aI(3,3) = 1.0_wp/7.0_wp
      aI(4,1) = 5338711108027.0_wp/29869763600956.0_wp
      aI(4,2) = 5338711108027.0_wp/29869763600956.0_wp
      aI(4,3) = 1483184435021.0_wp/6216373359362.0_wp
      aI(4,4) = 1.0_wp/7.0_wp
      aI(5,1) = 2264935805846.0_wp/12599242299355.0_wp
      aI(5,2) = 2264935805846.0_wp/12599242299355.0_wp
      aI(5,3) = 1330937762090.0_wp/13140498839569.0_wp
      aI(5,4) = -287786842865.0_wp/17211061626069.0_wp
      aI(5,5) = 1.0_wp/7.0_wp
      aI(6,1) = 118352937080.0_wp/527276862197.0_wp
      aI(6,2) = 118352937080.0_wp/527276862197.0_wp
      aI(6,3) = -2960446233093.0_wp/7419588050389.0_wp
      aI(6,4) = -3064256220847.0_wp/46575910191280.0_wp
      aI(6,5) = 6010467311487.0_wp/7886573591137.0_wp
      aI(6,6) = 1.0_wp/7.0_wp
      aI(7,1) = 1134270183919.0_wp/9703695183946.0_wp
      aI(7,2) = 1134270183919.0_wp/9703695183946.0_wp
      aI(7,3) = 4862384331311.0_wp/10104465681802.0_wp
      aI(7,4) = 1127469817207.0_wp/2459314315538.0_wp
      aI(7,5) = -9518066423555.0_wp/11243131997224.0_wp
      aI(7,6) = -811155580665.0_wp/7490894181109.0_wp
      aI(7,7) = 1.0_wp/7.0_wp
      aI(8,1) = 2162042939093.0_wp/22873479087181.0_wp
      aI(8,2) = 2162042939093.0_wp/22873479087181.0_wp
      aI(8,3) = -4222515349147.0_wp/9397994281350.0_wp
      aI(8,4) = 3431955516634.0_wp/4748630552535.0_wp
      aI(8,5) = -374165068070.0_wp/9085231819471.0_wp
      aI(8,6) = -1847934966618.0_wp/8254951855109.0_wp
      aI(8,7) = 5186241678079.0_wp/7861334770480.0_wp
      aI(8,8) = 1.0_wp/7.0_wp

!===================================================================================================================120
!===================================================================================================================120
      casename='ESDIRK659L[2]SA'  ! 'ESDIRK6(5)9L[2]SA' (2019 paper)
!===================================================================================================================120
!===================================================================================================================120

      ns=9
!
      aI(1,1)  = 0.0_wp/1.0_wp
      aI(2,1)  = 2.0_wp/9.0_wp
      aI(2,2)  = 2.0_wp/9.0_wp
      aI(3,1)  = 1.0_wp/9.0_wp
      aI(3,2)  = -52295652026801.0_wp/1014133226193379.0_wp
      aI(3,3)  = 2.0_wp/9.0_wp
      aI(4,1)  = 37633260247889.0_wp/456511413219805.0_wp
      aI(4,2)  = -162541608159785.0_wp/642690962402252.0_wp
      aI(4,3)  = 186915148640310.0_wp/408032288622937.0_wp
      aI(4,4)  = 2.0_wp/9.0_wp
      aI(5,1)  = -37161579357179.0_wp/532208945751958.0_wp
      aI(5,2)  = -211140841282847.0_wp/266150973773621.0_wp
      aI(5,3)  = 884359688045285.0_wp/894827558443789.0_wp
      aI(5,4)  = 845261567597837.0_wp/1489150009616527.0_wp
      aI(5,5)  = 2.0_wp/9.0_wp
      aI(6,1)  = 32386175866773.0_wp/281337331200713.0_wp
      aI(6,2)  = 498042629717897.0_wp/1553069719539220.0_wp
      aI(6,3)  = -73718535152787.0_wp/262520491717733.0_wp
      aI(6,4)  = -147656452213061.0_wp/931530156064788.0_wp
      aI(6,5)  = -16605385309793.0_wp/2106054502776008.0_wp
      aI(6,6)  = 2.0_wp/9.0_wp
      aI(7,1)  = -38317091100349.0_wp/1495803980405525.0_wp
      aI(7,2)  = 233542892858682.0_wp/880478953581929.0_wp
      aI(7,3)  = -281992829959331.0_wp/709729395317651.0_wp
      aI(7,4)  = -52133614094227.0_wp/895217507304839.0_wp
      aI(7,5)  = -9321507955616.0_wp/673810579175161.0_wp
      aI(7,6)  = 79481371174259.0_wp/817241804646218.0_wp
      aI(7,7)  = 2.0_wp/9.0_wp
      aI(8,1)  = -486324380411713.0_wp/1453057025607868.0_wp
      aI(8,2)  = -1085539098090580.0_wp/1176943702490991.0_wp
      aI(8,3)  = 370161554881539.0_wp/461122320759884.0_wp
      aI(8,4)  = 804017943088158.0_wp/886363045286999.0_wp
      aI(8,5)  = -15204170533868.0_wp/934878849212545.0_wp
      aI(8,6)  = -248215443403879.0_wp/815097869999138.0_wp
      aI(8,7)  = 339987959782520.0_wp/552150039467091.0_wp
      aI(8,8)  = 2.0_wp/9.0_wp
      aI(9,1)  = 0.0_wp/1.0_wp
      aI(9,2)  = 0.0_wp/1.0_wp
      aI(9,3)  = 0.0_wp/1.0_wp
      aI(9,4)  = 281246836687281.0_wp/672805784366875.0_wp
      aI(9,5)  = 250674029546725.0_wp/464056298040646.0_wp
      aI(9,6)  = 88917245119922.0_wp/798581755375683.0_wp
      aI(9,7)  = 127306093275639.0_wp/658941305589808.0_wp
      aI(9,8)  = -319515475352107.0_wp/658842144391777.0_wp
      aI(9,9)  = 2.0_wp/9.0_wp
      be(1)  = 0.0_wp/1.0_wp
      be(2)  = 0.0_wp/1.0_wp
      be(3)  = 0.0_wp/1.0_wp
      be(4)  = 281246836687281.0_wp/672805784366875.0_wp
      be(5)  = 250674029546725.0_wp/464056298040646.0_wp
      be(6)  = 88917245119922.0_wp/798581755375683.0_wp
      be(7)  = 127306093275639.0_wp/658941305589808.0_wp
      be(8)  = -319515475352107.0_wp/658842144391777.0_wp
      be(9)  = 2.0_wp/9.0_wp
      beh(1) = -204006714482445.0_wp/253120897457864.0_wp
      beh(2) = 0.0_wp/1.0_wp
      beh(3) = -818062434310719.0_wp/743038324242217.0_wp
      beh(4) = 1376520686137389.0_wp/1064235527052079.0_wp
      beh(5) = -574817982095666.0_wp/1374329821545869.0_wp
      beh(6) = -507643245828272.0_wp/1001056758847831.0_wp
      beh(7) = 2013538191006793.0_wp/972919262949000.0_wp
      beh(8) = 352681731710820.0_wp/726444701718347.0_wp
      beh(9) = -12107714797721.0_wp/746708658438760.0_wp
      ce(1)  = 0.0_wp/1.0_wp
      ce(2)  = 4.0_wp/9.0_wp
      ce(3)  = 376327483029687.0_wp/1335600577485745.0_wp
      ce(4)  = 433625707911282.0_wp/850513180247701.0_wp
      ce(5)  = 183.0_wp/200.0_wp
      ce(6)  = 62409086037595.0_wp/296036819031271.0_wp
      ce(7)  = 81796628710131.0_wp/911762868125288.0_wp
      ce(8)  = 97.0_wp/100.0_wp
      ce(9)  = 1.0_wp/1.0_wp

!===================================================================================================================120
!===================================================================================================================120
      casename='ESDIRK438L[2]SA'               ! 'ESDIRK4(3)8L[2]SA' (2024 NASATM)
!===================================================================================================================120
!===================================================================================================================120

      ns=8

      aI(1,1) = 0.0_wp

      aI(2,1) = 59.0_wp/585.0_wp
      aI(2,2) = 59.0_wp/585.0_wp

      aI(3,1) = -19518028676870.0_wp/934427233300157.0_wp
      aI(3,2) = -19518028676870.0_wp/934427233300157.0_wp
      aI(3,3) = 59.0_wp/585.0_wp

      aI(4,1) = 344729309340395.0_wp/1131933348968038.0_wp
      aI(4,2) = 344729309340395.0_wp/1131933348968038.0_wp
      aI(4,3) = -341351779839085.0_wp/1153422898589157.0_wp
      aI(4,4) = 59.0_wp/585.0_wp

      aI(5,1) = -407310541348277.0_wp/1457416150858249.0_wp
      aI(5,2) = -407310541348277.0_wp/1457416150858249.0_wp
      aI(5,3) = 825797892681077.0_wp/1108830414526536.0_wp
      aI(5,4) = 347150461205827.0_wp/1227445856948264.0_wp
      aI(5,5) = 59.0_wp/585.0_wp

      aI(6,1) = 1365085473788065.0_wp/2144135753095052.0_wp
      aI(6,2) = 1365085473788065.0_wp/2144135753095052.0_wp
      aI(6,3) = -1182497954870351.0_wp/1420056438593455.0_wp
      aI(6,4) = -63695567441873.0_wp/1007972570448412.0_wp
      aI(6,5) = 553123701809414.0_wp/1870580602846629.0_wp
      aI(6,6) = 59.0_wp/585.0_wp

      aI(7,1) = -526494814415147.0_wp/1342446036971084.0_wp
      aI(7,2) = -526494814415147.0_wp/1342446036971084.0_wp
      aI(7,3) = 972489732556969.0_wp/1041901655162605.0_wp
      aI(7,4) = 231710015292815.0_wp/710040785046631.0_wp
      aI(7,5) = 149813302106005.0_wp/784935650003848.0_wp
      aI(7,6) = -33068834936140.0_wp/1321803926597241.0_wp
      aI(7,7) = 59.0_wp/585.0_wp

      aI(8,1) = 43330198141423.0_wp/1552245574212436.0_wp
      aI(8,2) = 43330198141423.0_wp/1552245574212436.0_wp
      aI(8,3) = 126920317765990.0_wp/976320234585877.0_wp
      aI(8,4) = 144252338374735.0_wp/235812665300824.0_wp
      aI(8,5) = -461586332999218.0_wp/981082973953595.0_wp
      aI(8,6) = -274883779192603.0_wp/365924002944524.0_wp
      aI(8,7) = 624128017493557.0_wp/471650707219883.0_wp
      aI(8,8) = 59.0_wp/585.0_wp

      ! Weights 
      be(1) = 43330198141423.0_wp/1552245574212436.0_wp
      be(2) = 43330198141423.0_wp/1552245574212436.0_wp
      be(3) = 126920317765990.0_wp/976320234585877.0_wp
      be(4) = 144252338374735.0_wp/235812665300824.0_wp
      be(5) = -461586332999218.0_wp/981082973953595.0_wp
      be(6) = -274883779192603.0_wp/365924002944524.0_wp
      be(7) = 624128017493557.0_wp/471650707219883.0_wp
      be(8) = 59.0_wp/585.0_wp

      ! Embedded Weights 
      beh(1) = 63525278823359.0_wp/589073924187652.0_wp
      beh(2) = 63525278823359.0_wp/589073924187652.0_wp
      beh(3) = -1215341952797.0_wp/169743795871373.0_wp
      beh(4) = 568324990202744.0_wp/980157605573067.0_wp
      beh(5) = -260265382870227.0_wp/560889253908905.0_wp
      beh(6) = -700237699821775.0_wp/930744235749744.0_wp
      beh(7) = 1054294140731335.0_wp/793259632340454.0_wp
      beh(8) = 76832074920277.0_wp/776473806427012.0_wp

      ! Quadrature points
      ce(1) = 0.0_wp
      ce(2) = 118.0_wp/585.0_wp
      ce(3) = 156018921355884.0_wp/2640838318719043.0_wp
      ce(4) = 402.0_wp/971.0_wp
      ce(5) = 250.0_wp/439.0_wp
      ce(6) = 993.0_wp/1283.0_wp
      ce(7) = 256.0_wp/345.0_wp
      ce(8) = 1.0_wp

!===================================================================================================================120
!===================================================================================================================120
      casename='ESDIRK437L[2]SA_DAE'      ! Third-Order for the Index-2, z-variable 
!===================================================================================================================120
!===================================================================================================================120

      ns=7

      aI(1,1) = 0.0_wp/1.0_wp
      aI(2,1) = 9.0_wp/50.0_wp
      aI(3,1) = -37882655889150.0_wp/1016186906958877.0_wp
      aI(4,1) = -73468583640249.0_wp/506731441108699.0_wp
      aI(5,1) = -133335916217989.0_wp/843697985283065.0_wp
      aI(6,1) = -2005852528315818.0_wp/3898250075993831.0_wp
      aI(7,1) = 278044913449129.0_wp/1158622709394408.0_wp
      aI(1,2) = 0.0_wp/1.0_wp
      aI(2,2) = 9.0_wp/50.0_wp
      aI(3,2) = -37882655889150.0_wp/1016186906958877.0_wp
      aI(4,2) = -73468583640249.0_wp/506731441108699.0_wp
      aI(5,2) = -133335916217989.0_wp/843697985283065.0_wp
      aI(6,2) = -2005852528315818.0_wp/3898250075993831.0_wp
      aI(7,2) = 278044913449129.0_wp/1158622709394408.0_wp
      aI(1,3) = 0.0_wp/1.0_wp
      aI(2,3) = 0.0_wp/1.0_wp
      aI(3,3) = 9.0_wp/50.0_wp
      aI(4,3) = 418580047051346.0_wp/1015728999177825.0_wp
      aI(5,3) = 496091684036408.0_wp/1121123730243935.0_wp
      aI(6,3) = 1470398615489563.0_wp/1418916247950218.0_wp
      aI(7,3) = -188271558442775.0_wp/970304042797582.0_wp
      aI(1,4) = 0.0_wp/1.0_wp
      aI(2,4) = 0.0_wp/1.0_wp
      aI(3,4) = 0.0_wp/1.0_wp
      aI(4,4) = 9.0_wp/50.0_wp
      aI(5,4) = 538386087514823.0_wp/1585949949164697.0_wp
      aI(6,4) = 257318237488820.0_wp/622822153133637.0_wp
      aI(7,4) = 123113091387085.0_wp/659752368881897.0_wp
      aI(1,5) = 0.0_wp/1.0_wp
      aI(2,5) = 0.0_wp/1.0_wp
      aI(3,5) = 0.0_wp/1.0_wp
      aI(4,5) = 0.0_wp/1.0_wp
      aI(5,5) = 9.0_wp/50.0_wp
      aI(6,5) = 83044921923448.0_wp/519274996222453.0_wp
      aI(7,5) = 32963424160095.0_wp/56706540725936.0_wp
      aI(1,6) = 0.0_wp/1.0_wp
      aI(2,6) = 0.0_wp/1.0_wp
      aI(3,6) = 0.0_wp/1.0_wp
      aI(4,6) = 0.0_wp/1.0_wp
      aI(5,6) = 0.0_wp/1.0_wp
      aI(6,6) = 9.0_wp/50.0_wp
      aI(7,6) = -221786804785708.0_wp/948505981982203.0_wp
      aI(1,7) = 0.0_wp/1.0_wp
      aI(2,7) = 0.0_wp/1.0_wp
      aI(3,7) = 0.0_wp/1.0_wp
      aI(4,7) = 0.0_wp/1.0_wp
      aI(5,7) = 0.0_wp/1.0_wp
      aI(6,7) = 0.0_wp/1.0_wp
      aI(7,7) = 9.0_wp/50.0_wp

      ! Weights 
      bE(1) = 278044913449129.0_wp/1158622709394408.0_wp
      bE(2) = 278044913449129.0_wp/1158622709394408.0_wp
      bE(3) = -188271558442775.0_wp/970304042797582.0_wp
      bE(4) = 123113091387085.0_wp/659752368881897.0_wp
      bE(5) = 32963424160095.0_wp/56706540725936.0_wp
      bE(6) = -221786804785708.0_wp/948505981982203.0_wp
      bE(7) = 9.0_wp/50.0_wp

      ! Embedded Weights 
      bEh(1) = -126733270241222.0_wp/18057752056574177.0_wp
      bEh(2) = -126733270241222.0_wp/18057752056574177.0_wp
      bEh(3) = 127639018777231.0_wp/699237821800165.0_wp
      bEh(4) = 65077903120919.0_wp/238793127012202.0_wp
      bEh(5) = 376075051514783.0_wp/573911111909180.0_wp
      bEh(6) = -142188693942798.0_wp/460578779179951.0_wp
      bEh(7) = 209989156700087.0_wp/988645862306111.0_wp

      ! Quadrature points
      cE(1) = 0.0_wp/1.0_wp
      cE(2) = 9.0_wp/25.0_wp
      cE(3) = 133578070671155.0_wp/1266844612558581.0_wp
      cE(4) = 71.0_wp/235.0_wp
      cE(5) = 228.0_wp/353.0_wp
      cE(6) = 241.0_wp/317.0_wp
      cE(7) = 1.0_wp/1.0_wp

