************************************************************************** 
* sunem.for
* routines for evaluating the equal-mass sunrise master integrals
************************************************************************** 
      SUBROUTINE SUNRISE(S,SR2,SI2,S1R2,S1I2,SR4,SI4,S1R4,S1I4) 
************************************************************************** 
* S    = momentum transfer, positive when timelike 
* SR2  = real part of the 1st Master Integral in d=2 dimensions 
* SI2  = im   part of the 1st Master Integral in d=2 dimensions 
* S1R2 = real part of the 2nd Master Integral in d=2 dimensions 
* S1I2 = im   part of the 2nd Master Integral in d=2 dimensions 
* SR4  = real part of the 1st Master Integral in d=4 dimensions 
* SI4  = im   part of the 1st Master Integral in d=4 dimensions 
* S1R4 = real part of the 2nd Master Integral in d=4 dimensions 
* S1I4 = im   part of the 2nd Master Integral in d=4 dimensions 
************************************************************************** 
      implicit double precision (a-h,o-z) 
      if ( S .gt. 17.45d0 ) then 
         CALL SUNRISEOO(22,S,SR2,SI2,S1R2,S1I2,SR4,SI4,S1R4,S1I4) 
      else if ( S .gt. 5.15d0 ) then 
         CALL SUNRISE9(21,S,SR2,SI2,S1R2,S1I2,SR4,SI4,S1R4,S1I4) 
      else if ( S .gt. -11.d0 ) then 
         CALL SUNRISE0(18,S,SR2,SI2,S1R2,S1I2,SR4,SI4,S1R4,S1I4) 
      else if ( S .le. -11.d0 ) then 
         CALL SUNRISEOO(20,S,SR2,SI2,S1R2,S1I2,SR4,SI4,S1R4,S1I4) 
      endif 
      return 
      end 
************************************************************************** 
      subroutine sunrise0(nn,x,s1r2,s1i2,s2r2,s2i2,s1r4,s1i4,s2r4,s2i4) 
************************************************************************** 
*     expansion around x = 0 
************************************************************************** 
* s1r2 = real part of 1st m.i. in d=2 dimensions 
* s1i2 = im   part of 1st m.i. in d=2 dimensions 
* s2r2 = real part of 2nd m.i. in d=2 dimensions 
* s2i2 = im   part of 2nd m.i. in d=2 dimensions 
* s1r4 = real part of 1st m.i. in d=4 dimensions 
* s1i4 = im   part of 1st m.i. in d=4 dimensions 
* s2r4 = real part of 2nd m.i. in d=4 dimensions 
* s2i4 = im   part of 2nd m.i. in d=4 dimensions 
************************************************************************** 
      implicit double precision (a-h,o-z) 
      parameter (n0=24) 
      dimension a120(0:n0),a220(0:n0) 
      dimension a140(0:n0),a240(0:n0) 
      data a120/ 
     $     1.46494202418091181d-1 , 
     $    -6.4482607254273542 d-2 , 
     $     8.92173264423093895d-3 , 
     $     2.05110179842317986d-4 , 
     $    -1.33396307418825818d-4 , 
     $    -5.78815344484032585d-6 , 
     $     2.87820174583648277d-6 , 
     $     1.53692096804069248d-7 , 
     $    -6.5945764269174343 d-8 , 
     $    -3.91101814745863086d-9 , 
     $     1.54300105312730043d-9 , 
     $     9.70581634646823358d-11 , 
     $    -3.6540698243803592 d-11 , 
     $    -2.37418490975049782d-12 , 
     $     8.72980197997315301d-13 , 
     $     5.75907758811282135d-14 , 
     $    -2.10012509977417315d-14 , 
     $    -1.38991875218854925d-15 , 
     $     5.08068397363919798d-16 , 
     $     3.34360332891387156d-17 , 
     $    -1.23477917511575787d-17 , 
     $    -8.02527712590896128d-19 , 
     $     3.01227441885210935d-19 , 
     $     1.92289151502913727d-20 , 
     $    -7.37153244306983674d-21 
     $       / 
      data a220/ 
     $     4.88314008060303936d-2 , 
     $    -4.29884048361823613d-2 , 
     $     1.96688338532765293d-2 , 
     $    -6.28279771130241911d-3 , 
     $     1.5620131256047015 d-3 , 
     $    -3.15404665571696363d-4 , 
     $     5.27676241842260453d-5 , 
     $    -7.4816053507802811 d-6 , 
     $     9.30368203268474944d-7 , 
     $    -1.04602075539153011d-7 , 
     $     1.05779562638345097d-8 , 
     $    -9.33310115062062587d-10 , 
     $     7.48982029475594596d-11 , 
     $    -6.4374379000098179 d-12 , 
     $     5.30304938385948059d-13 , 
     $    -1.88739236755550892d-14 , 
     $    -5.51574393975319805d-16 , 
     $    -3.74830367012338786d-16 , 
     $     6.34734775363861678d-17 , 
     $     6.81843139525046949d-18 , 
     $    -1.39520545731071607d-18 , 
     $    -1.88606841269310244d-19 , 
     $     3.47282472513556871d-20 , 
     $     4.92202269439935664d-21 , 
     $    -8.5634714500707755 d-22 
     $       / 
      data a140/ 
     $    -4.36508696372863229d-1 , 
     $     2.28545107254273542d-1 , 
     $     1.90414946372863229d-1 , 
     $     9.67435657175926743d-2 , 
     $     3.43820541635502665d-2 , 
     $     9.19158234143656207d-3 , 
     $     1.93588605931123747d-3 , 
     $     3.32975067225980126d-4 , 
     $     4.83824937742784217d-5 , 
     $     6.13656964924265617d-6 , 
     $     6.9526554611972349 d-7 , 
     $     7.05921071721925791d-8 , 
     $     6.38502189317828938d-9 , 
     $     5.28142932378664049d-10 , 
     $     4.27848897303044839d-11 , 
     $     3.26539366205208726d-12 , 
     $     1.766777967202819  d-13 , 
     $     6.36506330240901469d-15 , 
     $     1.32613319558983575d-15 , 
     $     1.89876426612057814d-16 , 
     $    -1.18148201538883538d-17 , 
     $    -3.4457378479653927 d-18 , 
     $     3.43520725330857483d-19 , 
     $     8.60145259477794921d-20 , 
     $    -8.18242962202115488d-21 
     $       / 
      data a240/ 
     $    -4.19971012090455903d-2 , 
     $    -9.375              d-2 , 
     $    -2.14942024180911807d-2 , 
     $    -1.90398790954409669d-3 , 
     $     8.69999676516000567d-5 , 
     $     2.22947533852431691d-5 , 
     $    -1.85604996503906355d-6 , 
     $    -4.32255871036340569d-7 , 
     $     4.19443555847134075d-8 , 
     $     9.39798989427429002d-9 , 
     $    -9.65960302850822372d-10 , 
     $    -2.14008885217652168d-10 , 
     $     2.24779234319254509d-11 , 
     $     4.9966113753779869 d-12 , 
     $    -5.2702329213146038 d-13 , 
     $    -1.1853675451798244 d-13 , 
     $     1.24316124010542424d-14 , 
     $     2.84392721217320379d-15 , 
     $    -2.94708050302321859d-16 , 
     $    -6.88078946971336   d-17 , 
     $     7.01568484330860627d-18 , 
     $     1.67570433948088637d-18 , 
     $    -1.67602732298464339d-19 , 
     $    -4.10227263884637863d-20 , 
     $     4.01605882649139229d-21 
     $       / 
      if ( (nn.lt.1).or.(nn.gt.n0) ) then 
        write(6,*) ' wrong call; the subroutine', 
     $             ' SUNRISE0(N,S,SR2,SI2,S1R2,S1I2,SR4,SI4,S1R4,S1I4)' 
        write(6,*) ' was called with N = ',nn, 
     $             ' the allowed range is 1 <= N <= ',n0 
        stop 
      endif 
      t = DLOG(1.d0-x/9.d0) 
      s1i2 = 0d0 
      s1r2 = a120(nn) 
      s2i2 = 0d0 
      s2r2 = a220(nn) 
      s1i4 = 0d0 
      s1r4 = a140(nn) 
      s2i4 = 0d0 
      s2r4 = a240(nn) 
      do n=nn-1,0,-1 
         s1r2 = a120(n) + s1r2*t 
         s2r2 = a220(n) + s2r2*t 
         s1r4 = a140(n) + s1r4*t 
         s2r4 = a240(n) + s2r4*t 
      enddo 
      return 
      end 
************************************************************************** 
      subroutine sunrise9(nn,x,s1r2,s1i2,s2r2,s2i2,s1r4,s1i4,s2r4,s2i4) 
************************************************************************** 
*     expansion around x = 9 
************************************************************************** 
      implicit double precision (a-h,o-z) 
      parameter (pi   = 3.14159265358979324d0) 
      parameter (n9=24) 
      dimension a129(0:n9),b129(0:n9),a229(0:n9),b229(0:n9) 
      dimension a149(0:n9),b149(0:n9),a249(0:n9),b249(0:n9) 
      data a129/ 
     $     3.01695639959469835d-1 , 
     $     1.79817948714847326d-1 , 
     $     4.49445757100178212d-2 , 
     $     4.39999872827845855d-3 , 
     $    -6.26692731516347939d-4 , 
     $    -2.87548828429011154d-4 , 
     $    -3.33934772031444937d-5 , 
     $     6.1442749403057031 d-6 , 
     $     3.18201542438905489d-6 , 
     $     4.62161682266177285d-7 , 
     $    -5.80588245150648932d-8 , 
     $    -4.11618546453435347d-8 , 
     $    -7.44935426715806314d-9 , 
     $     4.43205248783855852d-10 , 
     $     5.64148529680244783d-10 , 
     $     1.25668105070410986d-10 , 
     $    -3.65597567927233603d-13 , 
     $    -7.86943281875854787d-12 , 
     $    -2.13851223679699248d-12 , 
     $    -9.56343167941809066d-14 , 
     $     1.08626033406211487d-13 , 
     $     3.62224714789191855d-14 , 
     $     3.14548038856827685d-15 , 
     $    -1.44587607624691479d-15 , 
     $    -6.06986043086800285d-16 
     $       / 
      data b129/ 
     $    -1.13362460264638616d-1 , 
     $    -7.55749735097590771d-2 , 
     $    -2.09930481971552992d-2 , 
     $    -2.33256091079503324d-3 , 
     $     2.72132106259420545d-4 , 
     $     1.3908974319925939 d-4 , 
     $     1.62383355586897033d-5 , 
     $    -2.86827742803034168d-6 , 
     $    -1.47594395275704734d-6 , 
     $    -2.14593328345406144d-7 , 
     $     2.58844067287221612d-8 , 
     $     1.88344487949866756d-8 , 
     $     3.46035208443224622d-9 , 
     $    -1.9017482313499    d-10 , 
     $    -2.57873677838472428d-10 , 
     $    -5.80613594087858914d-11 , 
     $     1.23991995382087481d-14 , 
     $     3.58804857064274915d-12 , 
     $     9.83293672796083083d-13 , 
     $     4.58221317641095009d-14 , 
     $    -4.93929000734424501d-14 , 
     $    -1.66063296643872301d-14 , 
     $    -1.4666470206496708 d-15 , 
     $     6.5571674199174015 d-16 , 
     $     2.77699769183876611d-16 
     $       / 
      data a229/ 
     $     2.36866108630356466d-2 , 
     $     1.55895126964104759d-2 , 
     $     2.71488016160816431d-3 , 
     $    -1.05090282705954794d-3 , 
     $    -7.55650971179023588d-4 , 
     $    -2.23988330564115964d-4 , 
     $    -3.72652249969564913d-5 , 
     $    -2.02151719815959351d-6 , 
     $     6.42008389853491512d-7 , 
     $     1.42611964588159192d-7 , 
     $    -1.59356858123231673d-8 , 
     $    -1.39959670781223103d-8 , 
     $    -2.87692301066313129d-9 , 
     $     5.69973295764418940d-11 , 
     $     1.85702814194507479d-10 , 
     $     4.58876463819704551d-11 , 
     $     9.58909129781676019d-13 , 
     $    -2.57020506773558904d-12 , 
     $    -7.58279460479345744d-13 , 
     $    -4.63405406484560427d-14 , 
     $     3.50484542177498017d-14 , 
     $     1.25955875894975539d-14 , 
     $     1.25083021171673077d-15 , 
     $    -4.59183109422870502d-16 , 
     $    -2.08158135962314392d-16 
     $       / 
      data b229/ 
     $    -9.44687168871988464d-3 , 
     $    -6.29791445914658976d-3 , 
     $    -1.04965240985776496d-3 , 
     $     5.0538819733892387 d-4 , 
     $     3.53123804550914755d-4 , 
     $     1.05901145054922651d-4 , 
     $     1.79354949319419194d-5 , 
     $     1.0435120868644251 d-6 , 
     $    -2.89226967780184382d-7 , 
     $    -6.64051406449456496d-8 , 
     $     7.086824491276512  d-9 , 
     $     6.41620120358496926d-9 , 
     $     1.3330168969152721 d-9 , 
     $    -2.14297291668747978d-11 , 
     $    -8.46071584232128126d-11 , 
     $    -2.11612778788557001d-11 , 
     $    -5.00638824321993294d-13 , 
     $     1.16902754852696668d-12 , 
     $     3.48444777411690409d-13 , 
     $     2.19791587784508627d-14 , 
     $    -1.59075874634695931d-14 , 
     $    -5.77141696884815392d-15 , 
     $    -5.82091705748330455d-16 , 
     $     2.07838797737225559d-16 , 
     $     9.51855241658659701d-17 
     $       / 
      data a149/ 
     $    -5.55337182117108925d-1 , 
     $    -7.61001412812849221d-2 , 
     $     3.80970821262164955d-1 , 
     $    -1.37510408711480783d-1 , 
     $     3.00727997043784993d-2 , 
     $    -7.39327537942913425d-3 , 
     $     1.22153887867582193d-3 , 
     $    -9.68827273922328474d-5 , 
     $     3.1492611079198917 d-5 , 
     $    -3.37433450069835778d-6 , 
     $    -8.62582776465548708d-7 , 
     $    -2.51358492245595368d-7 , 
     $     1.04628699505359106d-8 , 
     $     1.83241249552886602d-8 , 
     $     4.69932771122971243d-9 , 
     $     6.81992540561370837d-11 , 
     $    -3.06105758417703789d-10 , 
     $    -9.31936356113729837d-11 , 
     $    -5.60971262309295782d-12 , 
     $     4.87910892370709912d-12 , 
     $     1.80629469098320352d-12 , 
     $     1.83009569936685548d-13 , 
     $    -7.3230438213093471 d-14 , 
     $    -3.40949621374649452d-14 , 
     $    -4.78556135129358896d-15 
     $       / 
      data b149/ 
     $     0.d0 , 
     $     0.d0 , 
     $    -1.34355508461793915d-1 , 
     $     4.47851694872646383d-2 , 
     $    -8.70822740030145744d-3 , 
     $     2.34983913976388534d-3 , 
     $    -3.88568171477296073d-4 , 
     $     2.06485501751220135d-5 , 
     $    -1.13999743514066489d-5 , 
     $     1.19239982399844808d-6 , 
     $     4.2542031728775046 d-7 , 
     $     1.1178441517644902 d-7 , 
     $    -4.43055625385941075d-9 , 
     $    -8.35303035104015903d-9 , 
     $    -2.1395841341137274 d-9 , 
     $    -3.21420440203892435d-11 , 
     $     1.39159645631431474d-10 , 
     $     4.24300710230799857d-11 , 
     $     2.56687869125509631d-12 , 
     $    -2.21785175751411192d-12 , 
     $    -8.22148101340955106d-13 , 
     $    -8.34679242422832851d-14 , 
     $     3.32847594187203779d-14 , 
     $     1.55158008974515168d-14 , 
     $     2.18021544926428649d-15 
     $       / 
      data a249/ 
     $     1.19899947019518154d-1 , 
     $    -2.90140580626302486d-1 , 
     $     2.82550367613806716d-3 , 
     $     2.67756999616097058d-3 , 
     $     2.18279509224764848d-3 , 
     $     3.14678974867540886d-4 , 
     $    -6.62044846554373991d-5 , 
     $    -3.89459448878679937d-5 , 
     $    -6.33221258027318318d-6 , 
     $     8.7228051000018393 d-7 , 
     $     6.85215383330280124d-7 , 
     $     1.36258182114870791d-7 , 
     $    -8.39899997055461596d-9 , 
     $    -1.19254181161748175d-8 , 
     $    -2.86476005674286269d-9 , 
     $     3.37787541741569684d-12 , 
     $     2.0146144398744349 d-10 , 
     $     5.83005252838646202d-11 , 
     $     2.83612142063821917d-12 , 
     $    -3.26293885035411733d-12 , 
     $    -1.14934870735354667d-12 , 
     $    -1.05922810474112473d-13 , 
     $     4.98185022946301953d-14 , 
     $     2.19715534133456248d-14 , 
     $     2.91132571749703149d-15 
     $       / 
      data b249/ 
     $     0.d0 , 
     $     1.00766631346345436d-1 , 
     $     5.59814618590807979d-3 , 
     $    -1.8660487286360266 d-3 , 
     $    -9.84859051224569592d-4 , 
     $    -1.39377713682073591d-4 , 
     $     2.96289630095500793d-5 , 
     $     1.76469530791221341d-5 , 
     $     2.89786169720834388d-6 , 
     $    -3.9295678219409339 d-7 , 
     $    -3.11787981843179067d-7 , 
     $    -6.21258639461753383d-8 , 
     $     3.79357120944762522d-9 , 
     $     5.42437451867201479d-9 , 
     $     1.30446984308677244d-9 , 
     $    -1.1659953347411895 d-12 , 
     $    -9.16262141189689895d-11 , 
     $    -2.65383442991507407d-11 , 
     $    -1.29556843729499652d-12 , 
     $     1.48402415879433496d-12 , 
     $     5.23098312312073166d-13 , 
     $     4.82674502486375155d-14 , 
     $    -2.26576237107362135d-14 , 
     $    -9.99894653935711189d-15 , 
     $    -1.32573805301851873d-15 
     $       / 
      if ( (nn.lt.1).or.(nn.gt.n9) ) then 
        write(6,*) ' wrong call; the subroutine', 
     $             ' SUNRISE9(N,S,SR2,SI2,S1R2,S1I2,SR4,SI4,S1R4,S1I4)' 
        write(6,*) ' was called with N = ',nn, 
     $             ' the allowed range is 1 <= N <= ',n9 
        stop 
      endif 
      t = - DLOG( 1d0 + (x-9d0)/8d0 ) 
      a12 = a129(nn) 
      b12 = b129(nn) 
      a22 = a229(nn) 
      b22 = b229(nn) 
      a14 = a149(nn) 
      b14 = b149(nn) 
      a24 = a249(nn) 
      b24 = b249(nn) 
      do n=nn-1,0,-1
         a12 = a129(n) + a12*t 
         b12 = b129(n) + b12*t 
         a22 = a229(n) + a22*t 
         b22 = b229(n) + b22*t 
         a14 = a149(n) + a14*t 
         b14 = b149(n) + b14*t 
         a24 = a249(n) + a24*t 
         b24 = b249(n) + b24*t 
      enddo 
      s1i2 = 0d0 
      s1r2 = a12 + DLOG(abs(9.d0-x))*b12 
      s2i2 = 0d0  
      s2r2 = 3.40087380793915847d-1/(9d0-x) 
     $     + a22 + DLOG(abs(9.d0-x))*b22 
      s1i4 = 0d0  
      s1r4 = a14 + DLOG(abs(9.d0-x))*b14 
      s2i4 = 0d0  
      s2r4 = a24 + DLOG(abs(9.d0-x))*b24 
      if ( x > 9.d0 ) then 
        s1i2 = - pi*b12 
        s2i2 = - pi*b22 
        s1i4 = - pi*b14 
        s2i4 = - pi*b24 
      endif 
      return 
      end 
************************************************************************** 
      subroutine sunriseoo(nn,x,s1r2,s1i2,s2r2,s2i2,s1r4,s1i4,s2r4,s2i4) 
************************************************************************** 
*     expansion around x = oo 
************************************************************************** 
      implicit double precision (a-h,o-z) 
      parameter (pi   = 3.14159265358979324d0) 
      parameter (noo=26) 
      dimension a12oo(0:noo),b12oo(0:noo),c12oo(0:noo), 
     $          a22oo(0:noo),b22oo(0:noo),c22oo(0:noo) 
      dimension a14oo(0:noo),b14oo(0:noo),c14oo(0:noo), 
     $          a24oo(0:noo),b24oo(0:noo),c24oo(0:noo) 
      data a12oo/ 
     $     0.d0 , 
     $     0.d0 , 
     $     4.62962962962962963d-3 , 
     $     4.50102880658436214d-3 , 
     $     1.52812706396382665d-3 , 
     $     2.79693559586106454d-4 , 
     $     1.72176332838452434d-5 , 
     $    -5.66063368101835213d-6 , 
     $    -1.83991669007538036d-6 , 
     $    -1.69456902966571533d-7 , 
     $     4.51789657939105641d-8 , 
     $     1.95683862778812986d-8 , 
     $     2.64807368162985955d-9 , 
     $    -3.70861557842668584d-10 , 
     $    -2.47134488697189815d-10 , 
     $    -4.50058045650824435d-11 , 
     $     2.32698043176639963d-12 , 
     $     3.31739715632011386d-12 , 
     $     7.67513815348524663d-13 , 
     $     8.43221986350770105d-15 , 
     $    -4.49937508504306975d-14 , 
     $    -1.29889936021231148d-14 , 
     $    -7.91818843113302791d-16 , 
     $     5.98158489744461225d-16 , 
     $     2.17328283183806853d-16 , 
     $     2.27256209821124851d-17 , 
     $    -7.54365345834143682d-18 
     $       / 
      data b12oo/ 
     $     0.d0 , 
     $     0.d0 , 
     $     1.85185185185185185d-2 , 
     $     5.14403292181069959d-3 , 
     $     7.62078951379362902d-4 , 
     $    -3.17532896408067876d-6 , 
     $    -2.9142463603673785 d-5 , 
     $    -6.05403254756616654d-6 , 
     $    -1.52139512388345279d-8 , 
     $     2.95502742407321969d-7 , 
     $     7.41425921134698747d-8 , 
     $     2.97903726473696005d-9 , 
     $    -3.36682035032749414d-9 , 
     $    -1.06327579613581165d-9 , 
     $    -8.74486162837893122d-11 , 
     $     3.97554438724396098d-11 , 
     $     1.60849477344664008d-11 , 
     $     1.9659435418481614 d-12 , 
     $    -4.52383750243999991d-13 , 
     $    -2.46935069895423182d-13 , 
     $    -3.99624899482179961d-14 , 
     $     4.4820742803475991 d-15 , 
     $     3.78227263382940804d-15 , 
     $     7.69555307812643859d-16 , 
     $    -2.71088579041837384d-17 , 
     $    -5.71194530260381652d-17 , 
     $    -1.42886642648883049d-17 
     $       / 
      data c12oo/ 
     $     0.d0 , 
     $     2.08333333333333333d-2 , 
     $     3.47222222222222222d-3 , 
     $     3.85802469135802469d-4 , 
     $    -5.3583676268861454 d-5 , 
     $    -2.64346136259716507d-5 , 
     $    -3.0562541279276533 d-6 , 
     $     5.93694112530163945d-7 , 
     $     2.95718260419715991d-7 , 
     $     4.16604420138561276d-8 , 
     $    -5.63853816222293661d-9 , 
     $    -3.8266212003111586 d-9 , 
     $    -6.83137505805885236d-10 , 
     $     4.38525511126572541d-11 , 
     $     5.27679054913867753d-11 , 
     $     1.16280762613762493d-11 , 
     $    -6.99053921785940911d-14 , 
     $    -7.38906949546442507d-13 , 
     $    -1.987961304280254  d-13 , 
     $    -8.44636947055642217d-15 , 
     $     1.02285848884298679d-14 , 
     $     3.37849824471261192d-15 , 
     $     2.87552798174918667d-16 , 
     $    -1.3656384786446974 d-16 , 
     $    -5.67549327315618483d-17 , 
     $    -7.08036508133800786d-18 , 
     $     1.69568876975457933d-18 
     $       / 
      data a22oo / 
     $     0.d0 , 
     $     0.d0 , 
     $     4.62962962962962963d-3 , 
     $     2.57201646090534979d-4 , 
     $     4.62010364273738759d-4 , 
     $     2.31975421542560698d-5 , 
     $     1.69066666541221572d-5 , 
     $     5.02303067404367455d-7 , 
     $     2.78021908976970572d-8 , 
     $    -1.3795694940360926 d-7 , 
     $    -3.82675539470153927d-8 , 
     $    -4.25981388412478218d-9 , 
     $     1.58159402846923434d-9 , 
     $     8.08759269617598688d-10 , 
     $     1.38764559184145492d-10 , 
     $    -1.59840274240501076d-11 , 
     $    -1.49235302758837654d-11 , 
     $    -3.38191595768094879d-12 , 
     $     4.99621993152992705d-14 , 
     $     2.57170370148738307d-13 , 
     $     7.3487197620255143 d-14 , 
     $     3.61360044475646869d-15 , 
     $    -4.15699475318525117d-15 , 
     $    -1.49383762321322049d-15 , 
     $    -1.48284442298182262d-16 , 
     $     6.20884816806220589d-17 , 
     $     2.89163845343820078d-17 
     $       / 
      data b22oo / 
     $     0.d0 , 
     $     1.38888888888888889d-2 , 
     $    -3.85802469135802469d-3 , 
     $     3.00068587105624143d-3 , 
     $    -2.83398110044200579d-4 , 
     $     1.517278023336551  d-4 , 
     $    -1.40096689943004021d-5 , 
     $     8.60988301856620259d-7 , 
     $    -1.10934088854791717d-6 , 
     $    -1.13801504695881703d-7 , 
     $     5.55061009404931249d-9 , 
     $     1.38916119722133268d-8 , 
     $     3.55857591038478811d-9 , 
     $     1.30574792820173431d-10 , 
     $    -2.1805830383516823 d-10 , 
     $    -7.52742165453342318d-11 , 
     $    -7.14388708305769796d-12 , 
     $     3.22307054984026619d-12 , 
     $     1.47372857678973746d-12 , 
     $     2.10796298461907217d-13 , 
     $    -4.1923239429979183 d-14 , 
     $    -2.74349502762753871d-14 , 
     $    -5.17176250051928285d-15 , 
     $     4.11686997654298768d-16 , 
     $     4.88446348389605907d-16 , 
     $     1.15374664025083274d-16 , 
     $    -4.71555638217730886d-19 
     $       / 
      data c22oo / 
     $     0.d0 , 
     $     0.d0 , 
     $     2.31481481481481481d-3 , 
     $    -2.57201646090534979d-4 , 
     $     1.50034293552812071d-4 , 
     $    -2.61964639536655998d-5 , 
     $     1.40243695913563312d-6 , 
     $    -1.25543098857634244d-6 , 
     $     2.98037104598180992d-8 , 
     $     2.72719409668525375d-8 , 
     $     1.47213170332609848d-8 , 
     $     1.72197471520489837d-9 , 
     $    -4.38261228229203492d-10 , 
     $    -2.63266221994482295d-10 , 
     $    -4.77343846044856411d-11 , 
     $     4.32556540267080714d-12 , 
     $     4.6928303446505844 d-12 , 
     $     1.09526460229329135d-12 , 
     $    -6.46305390659766096d-15 , 
     $    -7.96143448611120029d-14 , 
     $    -2.31971651154959   d-14 , 
     $    -1.24152478732075182d-15 , 
     $     1.27501689679233988d-15 , 
     $     4.653524576946652  d-16 , 
     $     4.74044058168047488d-17 , 
     $    -1.89129110382151933d-17 , 
     $    -8.93839429799912466d-18 
     $       / 
      data a14oo / 
     $    -1.015625           d-1 , 
     $    -5.20833333333333333d-2 , 
     $    -2.66203703703703704d-2 , 
     $    -8.63768861454046639d-3 , 
     $    -1.6972133313011228 d-3 , 
     $    -1.04874059396997973d-5 , 
     $     1.56330216257935186d-4 , 
     $     8.14297253305475761d-5 , 
     $     2.86461181084795519d-5 , 
     $     8.24900271210919376d-6 , 
     $     2.08786271561079645d-6 , 
     $     4.81394561010020549d-7 , 
     $     1.0263073167194013 d-7 , 
     $     2.02301291953668196d-8 , 
     $     3.65654127160959975d-9 , 
     $     6.00451939863912789d-10 , 
     $     8.92971020408996576d-11 , 
     $     1.2170742356378359 d-11 , 
     $     1.57852111792448856d-12 , 
     $     2.05627395284389949d-13 , 
     $     2.6975640732825032 d-14 , 
     $     3.11046129120390205d-15 , 
     $     2.04039829451277256d-16 , 
     $    -1.65600841955708697d-17 , 
     $    -4.61215534352444327d-18 , 
     $     6.85019007366978983d-19 , 
     $     4.86895309072836412d-19 
     $       / 
      data b14oo / 
     $     3.125              d-2 , 
     $     0.d0                   , 
     $     3.47222222222222222d-3 , 
     $     3.98662551440329218d-3 , 
     $     2.57797020271300107d-3 , 
     $     1.18611767345763688d-3 , 
     $     4.27997592865435674d-4 , 
     $     1.285389171976653  d-4 , 
     $     3.35841747881455527d-5 , 
     $     7.90312722048211771d-6 , 
     $     1.7151432076566308 d-6 , 
     $     3.4667773367763981 d-7 , 
     $     6.5067865761907874 d-8 , 
     $     1.12243787216670356d-8 , 
     $     1.76235979528721655d-9 , 
     $     2.51826999163829336d-10 , 
     $     3.34605114420069556d-11 , 
     $     4.35101250371506939d-12 , 
     $     5.79732089259572475d-13 , 
     $     7.49693619401492287d-14 , 
     $     7.42788101721646072d-15 , 
     $     1.51864827650721645d-16 , 
     $    -1.0064361526658685 d-16 , 
     $    -6.7718029474256272 d-18 , 
     $     5.96614862835936482d-18 , 
     $     2.00164857147147502d-18 , 
     $     1.88835814316137076d-19 
     $       / 
      data c14oo / 
     $     0.d0 , 
     $     1.04166666666666667d-2 , 
     $     7.52314814814814815d-3 , 
     $     3.79372427983539095d-3 , 
     $     1.48426783264746228d-3 , 
     $     4.77371018137479043d-4 , 
     $     1.31504925993666277d-4 , 
     $     3.21030588464732142d-5 , 
     $     7.14198027557703773d-6 , 
     $     1.47523651306805857d-6 , 
     $     2.84694560898362628d-7 , 
     $     5.1072627171522222 d-8 , 
     $     8.42918071400676341d-9 , 
     $     1.2705607827196883 d-9 , 
     $     1.76004199572338468d-10 , 
     $     2.31291599749329717d-11 , 
     $     3.03929971885664949d-12 , 
     $     4.04359557618169904d-13 , 
     $     4.8448194963900913 d-14 , 
     $     3.63678844009322182d-15 , 
     $    -1.57819832077520014d-16 , 
     $    -6.63785487400594243d-17 , 
     $     8.27518477421777009d-18 , 
     $     6.91695687526570137d-18 , 
     $     1.35803137158721066d-18 , 
     $    -2.77015884678971408d-20 , 
     $    -7.89373909969254132d-20 
     $       / 
      data a24oo / 
     $    -3.125              d-2 , 
     $     1.38888888888888889d-2 , 
     $     2.89351851851851852d-3 , 
     $    -9.31165218716659046d-4 , 
     $    -7.61549729885349456d-4 , 
     $    -2.56657429987524485d-4 , 
     $    -6.31840155142130338d-5 , 
     $    -1.45121378832543271d-5 , 
     $    -3.32778127929677999d-6 , 
     $    -6.76949860478739699d-7 , 
     $    -1.04910456341997302d-7 , 
     $    -1.01805519268796038d-8 , 
     $    -1.85941825351695254d-10 , 
     $     8.11394884046857833d-11 , 
     $    -6.61330593704476861d-12 , 
     $    -7.9391215579534658 d-12 , 
     $    -1.76572241281835171d-12 , 
     $    -5.7417310977239633 d-14 , 
     $     7.21822754153366836d-14 , 
     $     2.04428017686952505d-14 , 
     $     1.26324106187979912d-15 , 
     $    -7.76133713066633919d-16 , 
     $    -2.64569696196618646d-16 , 
     $    -2.47973225070487502d-17 , 
     $     8.36329601316389961d-18 , 
     $     3.57112141091742332d-18 , 
     $     4.56652622875475533d-19 
     $       / 
      data b24oo / 
     $     6.25               d-2 , 
     $    -6.94444444444444444d-3 , 
     $    -9.64506172839506173d-3 , 
     $    -4.18667123914037494d-3 , 
     $    -1.10223606665650561d-3 , 
     $    -2.31772553303188877d-4 , 
     $    -4.94346777597764067d-5 , 
     $    -1.08915012406768782d-5 , 
     $    -2.05586974791628977d-6 , 
     $    -2.76375693854471109d-7 , 
     $    -1.90741412892341964d-8 , 
     $     8.9508260123560683 d-10 , 
     $     1.96940394263947691d-10 , 
     $    -7.88316352148847134d-11 , 
     $    -3.43021616431639788d-11 , 
     $    -4.81475639065554678d-12 , 
     $     5.12421783613035727d-13 , 
     $     3.66120941973786578d-13 , 
     $     6.2279007398221095 d-14 , 
     $    -4.18614781733968529d-15 , 
     $    -4.43288102545219915d-15 , 
     $    -8.91326789704104109d-16 , 
     $     1.96976518694111496d-17 , 
     $     5.54810893092933099d-17 , 
     $     1.33007558496762093d-17 , 
     $     2.7644201285674749 d-19 , 
     $    -7.03216702480537982d-19
     $       / 
      data c24oo / 
     $    -3.125              d-2 , 
     $    -1.38888888888888889d-2 , 
     $    -4.62962962962962963d-3 , 
     $    -1.02880658436213992d-3 , 
     $    -2.00045724737082762d-4 , 
     $    -4.19143423258649596d-5 , 
     $    -8.7145139347547517 d-6 , 
     $    -1.45717918245818803d-6 , 
     $    -1.61776570458343223d-7 , 
     $    -6.51458557363864298d-9 , 
     $     9.37759622895594112d-10 , 
     $    -4.11473668151375767d-11 , 
     $    -1.04604795541321918d-10 , 
     $    -2.64597651522820822d-11 , 
     $    -1.37117998888104123d-12 , 
     $     9.86939440709908819d-13 , 
     $     3.0534147260664301d-13 , 
     $     2.17824046482421897d-14 , 
     $    -1.11088854262197237d-14 , 
     $    -3.97039442957221719d-15 , 
     $    -3.86798600585261514d-16 , 
     $     1.24595515255094806d-16 , 
     $     5.41249451354213549d-17 , 
     $     6.88537719984362445d-18 , 
     $    -1.34492433412706911d-18 , 
     $    -7.57469501213485587d-19 , 
     $    -1.20864121865176067d-19 
     $       / 
      if ( (nn.lt.1).or.(nn.gt.noo) ) then 
        write(6,*) ' wrong call; the subroutine', 
     $             ' SUNRISEOO(N,S,SR2,SI2,S1R2,S1I2,SR4,SI4,S1R4,S1I4)' 
        write(6,*) ' was called with N = ',nn, 
     $             ' the allowed range is 1 <= N <= ',noo 
        stop 
      endif 
      t =  DLOG( 1d0 - 9d0/x ) 
      a12 = a12oo(nn) 
      b12 = b12oo(nn) 
      c12 = c12oo(nn) 
      a22 = a22oo(nn) 
      b22 = b22oo(nn) 
      c22 = c22oo(nn) 
      a14 = a14oo(nn) 
      b14 = b14oo(nn) 
      c14 = c14oo(nn) 
      a24 = a24oo(nn) 
      b24 = b24oo(nn) 
      c24 = c24oo(nn) 
      do n=nn-1,0,-1
         a12 = a12oo(n) + a12*t 
         b12 = b12oo(n) + b12*t 
         c12 = c12oo(n) + c12*t 
         a22 = a22oo(n) + a22*t 
         b22 = b22oo(n) + b22*t 
         c22 = c22oo(n) + c22*t 
         a14 = a14oo(n) + a14*t 
         b14 = b14oo(n) + b14*t 
         c14 = c14oo(n) + c14*t 
         a24 = a24oo(n) + a24*t 
         b24 = b24oo(n) + b24*t 
         c24 = c24oo(n) + c24*t 
      enddo 
      if ( x .le. 0.d0 ) then 
         s1i2 = 0.d0 
         s1r2 = a12 + DLOG(abs(x))*b12 + ( DLOG(abs(x)) )**2 *c12 
         s2i2 = 0.d0 
         s2r2 = a22 + DLOG(abs(x))*b22 + ( DLOG(abs(x)) )**2 *c22 
         s1i4 = 0.d0 
         s1r4 = -x*(a14 + DLOG(abs(x))*b14 + ( DLOG(abs(x)) )**2 *c14) 
         s2i4 = 0.d0 
         s2r4 = a24 + DLOG(abs(x))*b24 + ( DLOG(abs(x)) )**2 *c24 
      endif 
      if ( x > 0.d0 ) then 
         s1i2 = - pi*( b12 + 2d0*c12*DLOG(x) ) 
         s1r2 = a12 + DLOG(x)*b12 + ( DLOG(x)**2 - pi**2 )*c12 
         s2i2 = - pi*( b22 + 2d0*c22*DLOG(x) ) 
         s2r2 = a22 + DLOG(x)*b22 + ( DLOG(x)**2 - pi**2 )*c22 
         s1i4 = x*pi*( b14 + 2d0*c14*DLOG(x) ) 
         s1r4 = -x*(a14 + DLOG(x)*b14 + ( DLOG(x)**2 - pi**2 )*c14) 
         s2i4 = - pi*( b24 + 2d0*c24*DLOG(x) ) 
         s2r4 = a24 + DLOG(x)*b24 + ( DLOG(x)**2 - pi**2 )*c24 
      endif 
      return 
      end 
************************************************************************** 
