cunhj.f

Go to the documentation of this file.
00001       SUBROUTINE CUNHJ(Z, FNU, IPMTR, TOL, PHI, ARG, ZETA1, ZETA2,
00002      * ASUM, BSUM)
00003 C***BEGIN PROLOGUE  CUNHJ
00004 C***REFER TO  CBESI,CBESK
00005 C
00006 C     REFERENCES
00007 C         HANDBOOK OF MATHEMATICAL FUNCTIONS BY M. ABRAMOWITZ AND I.A.
00008 C         STEGUN, AMS55, NATIONAL BUREAU OF STANDARDS, 1965, CHAPTER 9.
00009 C
00010 C         ASYMPTOTICS AND SPECIAL FUNCTIONS BY F.W.J. OLVER, ACADEMIC
00011 C         PRESS, N.Y., 1974, PAGE 420
00012 C
00013 C     ABSTRACT
00014 C         CUNHJ COMPUTES PARAMETERS FOR BESSEL FUNCTIONS C(FNU,Z) =
00015 C         J(FNU,Z), Y(FNU,Z) OR H(I,FNU,Z) I=1,2 FOR LARGE ORDERS FNU
00016 C         BY MEANS OF THE UNIFORM ASYMPTOTIC EXPANSION
00017 C
00018 C         C(FNU,Z)=C1*PHI*( ASUM*AIRY(ARG) + C2*BSUM*DAIRY(ARG) )
00019 C
00020 C         FOR PROPER CHOICES OF C1, C2, AIRY AND DAIRY WHERE AIRY IS
00021 C         AN AIRY FUNCTION AND DAIRY IS ITS DERIVATIVE.
00022 C
00023 C               (2/3)*FNU*ZETA**1.5 = ZETA1-ZETA2,
00024 C
00025 C         ZETA1=0.5*FNU*CLOG((1+W)/(1-W)), ZETA2=FNU*W FOR SCALING
00026 C         PURPOSES IN AIRY FUNCTIONS FROM CAIRY OR CBIRY.
00027 C
00028 C         MCONJ=SIGN OF AIMAG(Z), BUT IS AMBIGUOUS WHEN Z IS REAL AND
00029 C         MUST BE SPECIFIED. IPMTR=0 RETURNS ALL PARAMETERS. IPMTR=
00030 C         1 COMPUTES ALL EXCEPT ASUM AND BSUM.
00031 C
00032 C***ROUTINES CALLED  (NONE)
00033 C***END PROLOGUE  CUNHJ
00034       COMPLEX ARG, ASUM, BSUM, CFNU, CONE, CR, CZERO, DR, P, PHI,
00035      * PRZTH, PTFN, RFN13, RTZTA, RZTH, SUMA, SUMB, TFN, T2, UP, W, W2,
00036      * Z, ZA, ZB, ZC, ZETA, ZETA1, ZETA2, ZTH
00037       REAL ALFA, ANG, AP, AR, ATOL, AW2, AZTH, BETA, BR, BTOL, C, EX1,
00038      * EX2, FNU, FN13, FN23, GAMA, HPI, PI, PP, RFNU, RFNU2, THPI, TOL,
00039      * WI, WR, ZCI, ZCR, ZETAI, ZETAR, ZTHI, ZTHR, ASUMR, ASUMI, BSUMR,
00040      * BSUMI, TEST, TSTR, TSTI, AC
00041       INTEGER IAS, IBS, IPMTR, IS, J, JR, JU, K, KMAX, KP1, KS, L, LR,
00042      * LRP1, L1, L2, M
00043       DIMENSION AR(14), BR(14), C(105), ALFA(180), BETA(210), GAMA(30),
00044      * AP(30), P(30), UP(14), CR(14), DR(14)
00045       DATA AR(1), AR(2), AR(3), AR(4), AR(5), AR(6), AR(7), AR(8),
00046      1     AR(9), AR(10), AR(11), AR(12), AR(13), AR(14)/
00047      2     1.00000000000000000E+00,     1.04166666666666667E-01,
00048      3     8.35503472222222222E-02,     1.28226574556327160E-01,
00049      4     2.91849026464140464E-01,     8.81627267443757652E-01,
00050      5     3.32140828186276754E+00,     1.49957629868625547E+01,
00051      6     7.89230130115865181E+01,     4.74451538868264323E+02,
00052      7     3.20749009089066193E+03,     2.40865496408740049E+04,
00053      8     1.98923119169509794E+05,     1.79190200777534383E+06/
00054       DATA BR(1), BR(2), BR(3), BR(4), BR(5), BR(6), BR(7), BR(8),
00055      1     BR(9), BR(10), BR(11), BR(12), BR(13), BR(14)/
00056      2     1.00000000000000000E+00,    -1.45833333333333333E-01,
00057      3    -9.87413194444444444E-02,    -1.43312053915895062E-01,
00058      4    -3.17227202678413548E-01,    -9.42429147957120249E-01,
00059      5    -3.51120304082635426E+00,    -1.57272636203680451E+01,
00060      6    -8.22814390971859444E+01,    -4.92355370523670524E+02,
00061      7    -3.31621856854797251E+03,    -2.48276742452085896E+04,
00062      8    -2.04526587315129788E+05,    -1.83844491706820990E+06/
00063       DATA C(1), C(2), C(3), C(4), C(5), C(6), C(7), C(8), C(9), C(10),
00064      1     C(11), C(12), C(13), C(14), C(15), C(16), C(17), C(18),
00065      2     C(19), C(20), C(21), C(22), C(23), C(24)/
00066      3     1.00000000000000000E+00,    -2.08333333333333333E-01,
00067      4     1.25000000000000000E-01,     3.34201388888888889E-01,
00068      5    -4.01041666666666667E-01,     7.03125000000000000E-02,
00069      6    -1.02581259645061728E+00,     1.84646267361111111E+00,
00070      7    -8.91210937500000000E-01,     7.32421875000000000E-02,
00071      8     4.66958442342624743E+00,    -1.12070026162229938E+01,
00072      9     8.78912353515625000E+00,    -2.36408691406250000E+00,
00073      A     1.12152099609375000E-01,    -2.82120725582002449E+01,
00074      B     8.46362176746007346E+01,    -9.18182415432400174E+01,
00075      C     4.25349987453884549E+01,    -7.36879435947963170E+00,
00076      D     2.27108001708984375E-01,     2.12570130039217123E+02,
00077      E    -7.65252468141181642E+02,     1.05999045252799988E+03/
00078       DATA C(25), C(26), C(27), C(28), C(29), C(30), C(31), C(32),
00079      1     C(33), C(34), C(35), C(36), C(37), C(38), C(39), C(40),
00080      2     C(41), C(42), C(43), C(44), C(45), C(46), C(47), C(48)/
00081      3    -6.99579627376132541E+02,     2.18190511744211590E+02,
00082      4    -2.64914304869515555E+01,     5.72501420974731445E-01,
00083      5    -1.91945766231840700E+03,     8.06172218173730938E+03,
00084      6    -1.35865500064341374E+04,     1.16553933368645332E+04,
00085      7    -5.30564697861340311E+03,     1.20090291321635246E+03,
00086      8    -1.08090919788394656E+02,     1.72772750258445740E+00,
00087      9     2.02042913309661486E+04,    -9.69805983886375135E+04,
00088      A     1.92547001232531532E+05,    -2.03400177280415534E+05,
00089      B     1.22200464983017460E+05,    -4.11926549688975513E+04,
00090      C     7.10951430248936372E+03,    -4.93915304773088012E+02,
00091      D     6.07404200127348304E+00,    -2.42919187900551333E+05,
00092      E     1.31176361466297720E+06,    -2.99801591853810675E+06/
00093       DATA C(49), C(50), C(51), C(52), C(53), C(54), C(55), C(56),
00094      1     C(57), C(58), C(59), C(60), C(61), C(62), C(63), C(64),
00095      2     C(65), C(66), C(67), C(68), C(69), C(70), C(71), C(72)/
00096      3     3.76327129765640400E+06,    -2.81356322658653411E+06,
00097      4     1.26836527332162478E+06,    -3.31645172484563578E+05,
00098      5     4.52187689813627263E+04,    -2.49983048181120962E+03,
00099      6     2.43805296995560639E+01,     3.28446985307203782E+06,
00100      7    -1.97068191184322269E+07,     5.09526024926646422E+07,
00101      8    -7.41051482115326577E+07,     6.63445122747290267E+07,
00102      9    -3.75671766607633513E+07,     1.32887671664218183E+07,
00103      A    -2.78561812808645469E+06,     3.08186404612662398E+05,
00104      B    -1.38860897537170405E+04,     1.10017140269246738E+02,
00105      C    -4.93292536645099620E+07,     3.25573074185765749E+08,
00106      D    -9.39462359681578403E+08,     1.55359689957058006E+09,
00107      E    -1.62108055210833708E+09,     1.10684281682301447E+09/
00108       DATA C(73), C(74), C(75), C(76), C(77), C(78), C(79), C(80),
00109      1     C(81), C(82), C(83), C(84), C(85), C(86), C(87), C(88),
00110      2     C(89), C(90), C(91), C(92), C(93), C(94), C(95), C(96)/
00111      3    -4.95889784275030309E+08,     1.42062907797533095E+08,
00112      4    -2.44740627257387285E+07,     2.24376817792244943E+06,
00113      5    -8.40054336030240853E+04,     5.51335896122020586E+02,
00114      6     8.14789096118312115E+08,    -5.86648149205184723E+09,
00115      7     1.86882075092958249E+10,    -3.46320433881587779E+10,
00116      8     4.12801855797539740E+10,    -3.30265997498007231E+10,
00117      9     1.79542137311556001E+10,    -6.56329379261928433E+09,
00118      A     1.55927986487925751E+09,    -2.25105661889415278E+08,
00119      B     1.73951075539781645E+07,    -5.49842327572288687E+05,
00120      C     3.03809051092238427E+03,    -1.46792612476956167E+10,
00121      D     1.14498237732025810E+11,    -3.99096175224466498E+11,
00122      E     8.19218669548577329E+11,    -1.09837515608122331E+12/
00123       DATA C(97), C(98), C(99), C(100), C(101), C(102), C(103), C(104),
00124      1     C(105)/
00125      2     1.00815810686538209E+12,    -6.45364869245376503E+11,
00126      3     2.87900649906150589E+11,    -8.78670721780232657E+10,
00127      4     1.76347306068349694E+10,    -2.16716498322379509E+09,
00128      5     1.43157876718888981E+08,    -3.87183344257261262E+06,
00129      6     1.82577554742931747E+04/
00130       DATA ALFA(1), ALFA(2), ALFA(3), ALFA(4), ALFA(5), ALFA(6),
00131      1     ALFA(7), ALFA(8), ALFA(9), ALFA(10), ALFA(11), ALFA(12),
00132      2     ALFA(13), ALFA(14), ALFA(15), ALFA(16), ALFA(17), ALFA(18),
00133      3     ALFA(19), ALFA(20), ALFA(21), ALFA(22)/
00134      4    -4.44444444444444444E-03,    -9.22077922077922078E-04,
00135      5    -8.84892884892884893E-05,     1.65927687832449737E-04,
00136      6     2.46691372741792910E-04,     2.65995589346254780E-04,
00137      7     2.61824297061500945E-04,     2.48730437344655609E-04,
00138      8     2.32721040083232098E-04,     2.16362485712365082E-04,
00139      9     2.00738858762752355E-04,     1.86267636637545172E-04,
00140      A     1.73060775917876493E-04,     1.61091705929015752E-04,
00141      B     1.50274774160908134E-04,     1.40503497391269794E-04,
00142      C     1.31668816545922806E-04,     1.23667445598253261E-04,
00143      D     1.16405271474737902E-04,     1.09798298372713369E-04,
00144      E     1.03772410422992823E-04,     9.82626078369363448E-05/
00145       DATA ALFA(23), ALFA(24), ALFA(25), ALFA(26), ALFA(27), ALFA(28),
00146      1     ALFA(29), ALFA(30), ALFA(31), ALFA(32), ALFA(33), ALFA(34),
00147      2     ALFA(35), ALFA(36), ALFA(37), ALFA(38), ALFA(39), ALFA(40),
00148      3     ALFA(41), ALFA(42), ALFA(43), ALFA(44)/
00149      4     9.32120517249503256E-05,     8.85710852478711718E-05,
00150      5     8.42963105715700223E-05,     8.03497548407791151E-05,
00151      6     7.66981345359207388E-05,     7.33122157481777809E-05,
00152      7     7.01662625163141333E-05,     6.72375633790160292E-05,
00153      8     6.93735541354588974E-04,     2.32241745182921654E-04,
00154      9    -1.41986273556691197E-05,    -1.16444931672048640E-04,
00155      A    -1.50803558053048762E-04,    -1.55121924918096223E-04,
00156      B    -1.46809756646465549E-04,    -1.33815503867491367E-04,
00157      C    -1.19744975684254051E-04,    -1.06184319207974020E-04,
00158      D    -9.37699549891194492E-05,    -8.26923045588193274E-05,
00159      E    -7.29374348155221211E-05,    -6.44042357721016283E-05/
00160       DATA ALFA(45), ALFA(46), ALFA(47), ALFA(48), ALFA(49), ALFA(50),
00161      1     ALFA(51), ALFA(52), ALFA(53), ALFA(54), ALFA(55), ALFA(56),
00162      2     ALFA(57), ALFA(58), ALFA(59), ALFA(60), ALFA(61), ALFA(62),
00163      3     ALFA(63), ALFA(64), ALFA(65), ALFA(66)/
00164      4    -5.69611566009369048E-05,    -5.04731044303561628E-05,
00165      5    -4.48134868008882786E-05,    -3.98688727717598864E-05,
00166      6    -3.55400532972042498E-05,    -3.17414256609022480E-05,
00167      7    -2.83996793904174811E-05,    -2.54522720634870566E-05,
00168      8    -2.28459297164724555E-05,    -2.05352753106480604E-05,
00169      9    -1.84816217627666085E-05,    -1.66519330021393806E-05,
00170      A    -1.50179412980119482E-05,    -1.35554031379040526E-05,
00171      B    -1.22434746473858131E-05,    -1.10641884811308169E-05,
00172      C    -3.54211971457743841E-04,    -1.56161263945159416E-04,
00173      D     3.04465503594936410E-05,     1.30198655773242693E-04,
00174      E     1.67471106699712269E-04,     1.70222587683592569E-04/
00175       DATA ALFA(67), ALFA(68), ALFA(69), ALFA(70), ALFA(71), ALFA(72),
00176      1     ALFA(73), ALFA(74), ALFA(75), ALFA(76), ALFA(77), ALFA(78),
00177      2     ALFA(79), ALFA(80), ALFA(81), ALFA(82), ALFA(83), ALFA(84),
00178      3     ALFA(85), ALFA(86), ALFA(87), ALFA(88)/
00179      4     1.56501427608594704E-04,     1.36339170977445120E-04,
00180      5     1.14886692029825128E-04,     9.45869093034688111E-05,
00181      6     7.64498419250898258E-05,     6.07570334965197354E-05,
00182      7     4.74394299290508799E-05,     3.62757512005344297E-05,
00183      8     2.69939714979224901E-05,     1.93210938247939253E-05,
00184      9     1.30056674793963203E-05,     7.82620866744496661E-06,
00185      A     3.59257485819351583E-06,     1.44040049814251817E-07,
00186      B    -2.65396769697939116E-06,    -4.91346867098485910E-06,
00187      C    -6.72739296091248287E-06,    -8.17269379678657923E-06,
00188      D    -9.31304715093561232E-06,    -1.02011418798016441E-05,
00189      E    -1.08805962510592880E-05,    -1.13875481509603555E-05/
00190       DATA ALFA(89), ALFA(90), ALFA(91), ALFA(92), ALFA(93), ALFA(94),
00191      1     ALFA(95), ALFA(96), ALFA(97), ALFA(98), ALFA(99), ALFA(100),
00192      2     ALFA(101), ALFA(102), ALFA(103), ALFA(104), ALFA(105),
00193      3     ALFA(106), ALFA(107), ALFA(108), ALFA(109), ALFA(110)/
00194      4    -1.17519675674556414E-05,    -1.19987364870944141E-05,
00195      5     3.78194199201772914E-04,     2.02471952761816167E-04,
00196      6    -6.37938506318862408E-05,    -2.38598230603005903E-04,
00197      7    -3.10916256027361568E-04,    -3.13680115247576316E-04,
00198      8    -2.78950273791323387E-04,    -2.28564082619141374E-04,
00199      9    -1.75245280340846749E-04,    -1.25544063060690348E-04,
00200      A    -8.22982872820208365E-05,    -4.62860730588116458E-05,
00201      B    -1.72334302366962267E-05,     5.60690482304602267E-06,
00202      C     2.31395443148286800E-05,     3.62642745856793957E-05,
00203      D     4.58006124490188752E-05,     5.24595294959114050E-05,
00204      E     5.68396208545815266E-05,     5.94349820393104052E-05/
00205       DATA ALFA(111), ALFA(112), ALFA(113), ALFA(114), ALFA(115),
00206      1     ALFA(116), ALFA(117), ALFA(118), ALFA(119), ALFA(120),
00207      2     ALFA(121), ALFA(122), ALFA(123), ALFA(124), ALFA(125),
00208      3     ALFA(126), ALFA(127), ALFA(128), ALFA(129), ALFA(130)/
00209      4     6.06478527578421742E-05,     6.08023907788436497E-05,
00210      5     6.01577894539460388E-05,     5.89199657344698500E-05,
00211      6     5.72515823777593053E-05,     5.52804375585852577E-05,
00212      7     5.31063773802880170E-05,     5.08069302012325706E-05,
00213      8     4.84418647620094842E-05,     4.60568581607475370E-05,
00214      9    -6.91141397288294174E-04,    -4.29976633058871912E-04,
00215      A     1.83067735980039018E-04,     6.60088147542014144E-04,
00216      B     8.75964969951185931E-04,     8.77335235958235514E-04,
00217      C     7.49369585378990637E-04,     5.63832329756980918E-04,
00218      D     3.68059319971443156E-04,     1.88464535514455599E-04/
00219       DATA ALFA(131), ALFA(132), ALFA(133), ALFA(134), ALFA(135),
00220      1     ALFA(136), ALFA(137), ALFA(138), ALFA(139), ALFA(140),
00221      2     ALFA(141), ALFA(142), ALFA(143), ALFA(144), ALFA(145),
00222      3     ALFA(146), ALFA(147), ALFA(148), ALFA(149), ALFA(150)/
00223      4     3.70663057664904149E-05,    -8.28520220232137023E-05,
00224      5    -1.72751952869172998E-04,    -2.36314873605872983E-04,
00225      6    -2.77966150694906658E-04,    -3.02079514155456919E-04,
00226      7    -3.12594712643820127E-04,    -3.12872558758067163E-04,
00227      8    -3.05678038466324377E-04,    -2.93226470614557331E-04,
00228      9    -2.77255655582934777E-04,    -2.59103928467031709E-04,
00229      A    -2.39784014396480342E-04,    -2.20048260045422848E-04,
00230      B    -2.00443911094971498E-04,    -1.81358692210970687E-04,
00231      C    -1.63057674478657464E-04,    -1.45712672175205844E-04,
00232      D    -1.29425421983924587E-04,    -1.14245691942445952E-04/
00233       DATA ALFA(151), ALFA(152), ALFA(153), ALFA(154), ALFA(155),
00234      1     ALFA(156), ALFA(157), ALFA(158), ALFA(159), ALFA(160),
00235      2     ALFA(161), ALFA(162), ALFA(163), ALFA(164), ALFA(165),
00236      3     ALFA(166), ALFA(167), ALFA(168), ALFA(169), ALFA(170)/
00237      4     1.92821964248775885E-03,     1.35592576302022234E-03,
00238      5    -7.17858090421302995E-04,    -2.58084802575270346E-03,
00239      6    -3.49271130826168475E-03,    -3.46986299340960628E-03,
00240      7    -2.82285233351310182E-03,    -1.88103076404891354E-03,
00241      8    -8.89531718383947600E-04,     3.87912102631035228E-06,
00242      9     7.28688540119691412E-04,     1.26566373053457758E-03,
00243      A     1.62518158372674427E-03,     1.83203153216373172E-03,
00244      B     1.91588388990527909E-03,     1.90588846755546138E-03,
00245      C     1.82798982421825727E-03,     1.70389506421121530E-03,
00246      D     1.55097127171097686E-03,     1.38261421852276159E-03/
00247       DATA ALFA(171), ALFA(172), ALFA(173), ALFA(174), ALFA(175),
00248      1     ALFA(176), ALFA(177), ALFA(178), ALFA(179), ALFA(180)/
00249      2     1.20881424230064774E-03,     1.03676532638344962E-03,
00250      3     8.71437918068619115E-04,     7.16080155297701002E-04,
00251      4     5.72637002558129372E-04,     4.42089819465802277E-04,
00252      5     3.24724948503090564E-04,     2.20342042730246599E-04,
00253      6     1.28412898401353882E-04,     4.82005924552095464E-05/
00254       DATA BETA(1), BETA(2), BETA(3), BETA(4), BETA(5), BETA(6),
00255      1     BETA(7), BETA(8), BETA(9), BETA(10), BETA(11), BETA(12),
00256      2     BETA(13), BETA(14), BETA(15), BETA(16), BETA(17), BETA(18),
00257      3     BETA(19), BETA(20), BETA(21), BETA(22)/
00258      4     1.79988721413553309E-02,     5.59964911064388073E-03,
00259      5     2.88501402231132779E-03,     1.80096606761053941E-03,
00260      6     1.24753110589199202E-03,     9.22878876572938311E-04,
00261      7     7.14430421727287357E-04,     5.71787281789704872E-04,
00262      8     4.69431007606481533E-04,     3.93232835462916638E-04,
00263      9     3.34818889318297664E-04,     2.88952148495751517E-04,
00264      A     2.52211615549573284E-04,     2.22280580798883327E-04,
00265      B     1.97541838033062524E-04,     1.76836855019718004E-04,
00266      C     1.59316899661821081E-04,     1.44347930197333986E-04,
00267      D     1.31448068119965379E-04,     1.20245444949302884E-04,
00268      E     1.10449144504599392E-04,     1.01828770740567258E-04/
00269       DATA BETA(23), BETA(24), BETA(25), BETA(26), BETA(27), BETA(28),
00270      1     BETA(29), BETA(30), BETA(31), BETA(32), BETA(33), BETA(34),
00271      2     BETA(35), BETA(36), BETA(37), BETA(38), BETA(39), BETA(40),
00272      3     BETA(41), BETA(42), BETA(43), BETA(44)/
00273      4     9.41998224204237509E-05,     8.74130545753834437E-05,
00274      5     8.13466262162801467E-05,     7.59002269646219339E-05,
00275      6     7.09906300634153481E-05,     6.65482874842468183E-05,
00276      7     6.25146958969275078E-05,     5.88403394426251749E-05,
00277      8    -1.49282953213429172E-03,    -8.78204709546389328E-04,
00278      9    -5.02916549572034614E-04,    -2.94822138512746025E-04,
00279      A    -1.75463996970782828E-04,    -1.04008550460816434E-04,
00280      B    -5.96141953046457895E-05,    -3.12038929076098340E-05,
00281      C    -1.26089735980230047E-05,    -2.42892608575730389E-07,
00282      D     8.05996165414273571E-06,     1.36507009262147391E-05,
00283      E     1.73964125472926261E-05,     1.98672978842133780E-05/
00284       DATA BETA(45), BETA(46), BETA(47), BETA(48), BETA(49), BETA(50),
00285      1     BETA(51), BETA(52), BETA(53), BETA(54), BETA(55), BETA(56),
00286      2     BETA(57), BETA(58), BETA(59), BETA(60), BETA(61), BETA(62),
00287      3     BETA(63), BETA(64), BETA(65), BETA(66)/
00288      4     2.14463263790822639E-05,     2.23954659232456514E-05,
00289      5     2.28967783814712629E-05,     2.30785389811177817E-05,
00290      6     2.30321976080909144E-05,     2.28236073720348722E-05,
00291      7     2.25005881105292418E-05,     2.20981015361991429E-05,
00292      8     2.16418427448103905E-05,     2.11507649256220843E-05,
00293      9     2.06388749782170737E-05,     2.01165241997081666E-05,
00294      A     1.95913450141179244E-05,     1.90689367910436740E-05,
00295      B     1.85533719641636667E-05,     1.80475722259674218E-05,
00296      C     5.52213076721292790E-04,     4.47932581552384646E-04,
00297      D     2.79520653992020589E-04,     1.52468156198446602E-04,
00298      E     6.93271105657043598E-05,     1.76258683069991397E-05/
00299       DATA BETA(67), BETA(68), BETA(69), BETA(70), BETA(71), BETA(72),
00300      1     BETA(73), BETA(74), BETA(75), BETA(76), BETA(77), BETA(78),
00301      2     BETA(79), BETA(80), BETA(81), BETA(82), BETA(83), BETA(84),
00302      3     BETA(85), BETA(86), BETA(87), BETA(88)/
00303      4    -1.35744996343269136E-05,    -3.17972413350427135E-05,
00304      5    -4.18861861696693365E-05,    -4.69004889379141029E-05,
00305      6    -4.87665447413787352E-05,    -4.87010031186735069E-05,
00306      7    -4.74755620890086638E-05,    -4.55813058138628452E-05,
00307      8    -4.33309644511266036E-05,    -4.09230193157750364E-05,
00308      9    -3.84822638603221274E-05,    -3.60857167535410501E-05,
00309      A    -3.37793306123367417E-05,    -3.15888560772109621E-05,
00310      B    -2.95269561750807315E-05,    -2.75978914828335759E-05,
00311      C    -2.58006174666883713E-05,    -2.41308356761280200E-05,
00312      D    -2.25823509518346033E-05,    -2.11479656768912971E-05,
00313      E    -1.98200638885294927E-05,    -1.85909870801065077E-05/
00314       DATA BETA(89), BETA(90), BETA(91), BETA(92), BETA(93), BETA(94),
00315      1     BETA(95), BETA(96), BETA(97), BETA(98), BETA(99), BETA(100),
00316      2     BETA(101), BETA(102), BETA(103), BETA(104), BETA(105),
00317      3     BETA(106), BETA(107), BETA(108), BETA(109), BETA(110)/
00318      4    -1.74532699844210224E-05,    -1.63997823854497997E-05,
00319      5    -4.74617796559959808E-04,    -4.77864567147321487E-04,
00320      6    -3.20390228067037603E-04,    -1.61105016119962282E-04,
00321      7    -4.25778101285435204E-05,     3.44571294294967503E-05,
00322      8     7.97092684075674924E-05,     1.03138236708272200E-04,
00323      9     1.12466775262204158E-04,     1.13103642108481389E-04,
00324      A     1.08651634848774268E-04,     1.01437951597661973E-04,
00325      B     9.29298396593363896E-05,     8.40293133016089978E-05,
00326      C     7.52727991349134062E-05,     6.69632521975730872E-05,
00327      D     5.92564547323194704E-05,     5.22169308826975567E-05,
00328      E     4.58539485165360646E-05,     4.01445513891486808E-05/
00329       DATA BETA(111), BETA(112), BETA(113), BETA(114), BETA(115),
00330      1     BETA(116), BETA(117), BETA(118), BETA(119), BETA(120),
00331      2     BETA(121), BETA(122), BETA(123), BETA(124), BETA(125),
00332      3     BETA(126), BETA(127), BETA(128), BETA(129), BETA(130)/
00333      4     3.50481730031328081E-05,     3.05157995034346659E-05,
00334      5     2.64956119950516039E-05,     2.29363633690998152E-05,
00335      6     1.97893056664021636E-05,     1.70091984636412623E-05,
00336      7     1.45547428261524004E-05,     1.23886640995878413E-05,
00337      8     1.04775876076583236E-05,     8.79179954978479373E-06,
00338      9     7.36465810572578444E-04,     8.72790805146193976E-04,
00339      A     6.22614862573135066E-04,     2.85998154194304147E-04,
00340      B     3.84737672879366102E-06,    -1.87906003636971558E-04,
00341      C    -2.97603646594554535E-04,    -3.45998126832656348E-04,
00342      D    -3.53382470916037712E-04,    -3.35715635775048757E-04/
00343       DATA BETA(131), BETA(132), BETA(133), BETA(134), BETA(135),
00344      1     BETA(136), BETA(137), BETA(138), BETA(139), BETA(140),
00345      2     BETA(141), BETA(142), BETA(143), BETA(144), BETA(145),
00346      3     BETA(146), BETA(147), BETA(148), BETA(149), BETA(150)/
00347      4    -3.04321124789039809E-04,    -2.66722723047612821E-04,
00348      5    -2.27654214122819527E-04,    -1.89922611854562356E-04,
00349      6    -1.55058918599093870E-04,    -1.23778240761873630E-04,
00350      7    -9.62926147717644187E-05,    -7.25178327714425337E-05,
00351      8    -5.22070028895633801E-05,    -3.50347750511900522E-05,
00352      9    -2.06489761035551757E-05,    -8.70106096849767054E-06,
00353      A     1.13698686675100290E-06,     9.16426474122778849E-06,
00354      B     1.56477785428872620E-05,     2.08223629482466847E-05,
00355      C     2.48923381004595156E-05,     2.80340509574146325E-05,
00356      D     3.03987774629861915E-05,     3.21156731406700616E-05/
00357       DATA BETA(151), BETA(152), BETA(153), BETA(154), BETA(155),
00358      1     BETA(156), BETA(157), BETA(158), BETA(159), BETA(160),
00359      2     BETA(161), BETA(162), BETA(163), BETA(164), BETA(165),
00360      3     BETA(166), BETA(167), BETA(168), BETA(169), BETA(170)/
00361      4    -1.80182191963885708E-03,    -2.43402962938042533E-03,
00362      5    -1.83422663549856802E-03,    -7.62204596354009765E-04,
00363      6     2.39079475256927218E-04,     9.49266117176881141E-04,
00364      7     1.34467449701540359E-03,     1.48457495259449178E-03,
00365      8     1.44732339830617591E-03,     1.30268261285657186E-03,
00366      9     1.10351597375642682E-03,     8.86047440419791759E-04,
00367      A     6.73073208165665473E-04,     4.77603872856582378E-04,
00368      B     3.05991926358789362E-04,     1.60315694594721630E-04,
00369      C     4.00749555270613286E-05,    -5.66607461635251611E-05,
00370      D    -1.32506186772982638E-04,    -1.90296187989614057E-04/
00371       DATA BETA(171), BETA(172), BETA(173), BETA(174), BETA(175),
00372      1     BETA(176), BETA(177), BETA(178), BETA(179), BETA(180),
00373      2     BETA(181), BETA(182), BETA(183), BETA(184), BETA(185),
00374      3     BETA(186), BETA(187), BETA(188), BETA(189), BETA(190)/
00375      4    -2.32811450376937408E-04,    -2.62628811464668841E-04,
00376      5    -2.82050469867598672E-04,    -2.93081563192861167E-04,
00377      6    -2.97435962176316616E-04,    -2.96557334239348078E-04,
00378      7    -2.91647363312090861E-04,    -2.83696203837734166E-04,
00379      8    -2.73512317095673346E-04,    -2.61750155806768580E-04,
00380      9     6.38585891212050914E-03,     9.62374215806377941E-03,
00381      A     7.61878061207001043E-03,     2.83219055545628054E-03,
00382      B    -2.09841352012720090E-03,    -5.73826764216626498E-03,
00383      C    -7.70804244495414620E-03,    -8.21011692264844401E-03,
00384      D    -7.65824520346905413E-03,    -6.47209729391045177E-03/
00385       DATA BETA(191), BETA(192), BETA(193), BETA(194), BETA(195),
00386      1     BETA(196), BETA(197), BETA(198), BETA(199), BETA(200),
00387      2     BETA(201), BETA(202), BETA(203), BETA(204), BETA(205),
00388      3     BETA(206), BETA(207), BETA(208), BETA(209), BETA(210)/
00389      4    -4.99132412004966473E-03,    -3.45612289713133280E-03,
00390      5    -2.01785580014170775E-03,    -7.59430686781961401E-04,
00391      6     2.84173631523859138E-04,     1.10891667586337403E-03,
00392      7     1.72901493872728771E-03,     2.16812590802684701E-03,
00393      8     2.45357710494539735E-03,     2.61281821058334862E-03,
00394      9     2.67141039656276912E-03,     2.65203073395980430E-03,
00395      A     2.57411652877287315E-03,     2.45389126236094427E-03,
00396      B     2.30460058071795494E-03,     2.13684837686712662E-03,
00397      C     1.95896528478870911E-03,     1.77737008679454412E-03,
00398      D     1.59690280765839059E-03,     1.42111975664438546E-03/
00399       DATA GAMA(1), GAMA(2), GAMA(3), GAMA(4), GAMA(5), GAMA(6),
00400      1     GAMA(7), GAMA(8), GAMA(9), GAMA(10), GAMA(11), GAMA(12),
00401      2     GAMA(13), GAMA(14), GAMA(15), GAMA(16), GAMA(17), GAMA(18),
00402      3     GAMA(19), GAMA(20), GAMA(21), GAMA(22)/
00403      4     6.29960524947436582E-01,     2.51984209978974633E-01,
00404      5     1.54790300415655846E-01,     1.10713062416159013E-01,
00405      6     8.57309395527394825E-02,     6.97161316958684292E-02,
00406      7     5.86085671893713576E-02,     5.04698873536310685E-02,
00407      8     4.42600580689154809E-02,     3.93720661543509966E-02,
00408      9     3.54283195924455368E-02,     3.21818857502098231E-02,
00409      A     2.94646240791157679E-02,     2.71581677112934479E-02,
00410      B     2.51768272973861779E-02,     2.34570755306078891E-02,
00411      C     2.19508390134907203E-02,     2.06210828235646240E-02,
00412      D     1.94388240897880846E-02,     1.83810633800683158E-02,
00413      E     1.74293213231963172E-02,     1.65685837786612353E-02/
00414       DATA GAMA(23), GAMA(24), GAMA(25), GAMA(26), GAMA(27), GAMA(28),
00415      1     GAMA(29), GAMA(30)/
00416      2     1.57865285987918445E-02,     1.50729501494095594E-02,
00417      3     1.44193250839954639E-02,     1.38184805735341786E-02,
00418      4     1.32643378994276568E-02,     1.27517121970498651E-02,
00419      5     1.22761545318762767E-02,     1.18338262398482403E-02/
00420       DATA EX1, EX2, HPI, PI, THPI /
00421      1     3.33333333333333333E-01,     6.66666666666666667E-01,
00422      2     1.57079632679489662E+00,     3.14159265358979324E+00,
00423      3     4.71238898038468986E+00/
00424       DATA CZERO, CONE / (0.0E0,0.0E0), (1.0E0,0.0E0) /
00425 C
00426       RFNU = 1.0E0/FNU
00427 C     ZB = Z*CMPLX(RFNU,0.0E0)
00428 C-----------------------------------------------------------------------
00429 C     OVERFLOW TEST (Z/FNU TOO SMALL)
00430 C-----------------------------------------------------------------------
00431       TSTR = REAL(Z)
00432       TSTI = AIMAG(Z)
00433       TEST = R1MACH(1)*1.0E+3
00434       AC = FNU*TEST
00435       IF (ABS(TSTR).GT.AC .OR. ABS(TSTI).GT.AC) GO TO 15
00436       AC = 2.0E0*ABS(ALOG(TEST))+FNU
00437       ZETA1 = CMPLX(AC,0.0E0)
00438       ZETA2 = CMPLX(FNU,0.0E0)
00439       PHI=CONE
00440       ARG=CONE
00441       RETURN
00442    15 CONTINUE
00443       ZB = Z*CMPLX(RFNU,0.0E0)
00444       RFNU2 = RFNU*RFNU
00445 C-----------------------------------------------------------------------
00446 C     COMPUTE IN THE FOURTH QUADRANT
00447 C-----------------------------------------------------------------------
00448       FN13 = FNU**EX1
00449       FN23 = FN13*FN13
00450       RFN13 = CMPLX(1.0E0/FN13,0.0E0)
00451       W2 = CONE - ZB*ZB
00452       AW2 = CABS(W2)
00453       IF (AW2.GT.0.25E0) GO TO 130
00454 C-----------------------------------------------------------------------
00455 C     POWER SERIES FOR CABS(W2).LE.0.25E0
00456 C-----------------------------------------------------------------------
00457       K = 1
00458       P(1) = CONE
00459       SUMA = CMPLX(GAMA(1),0.0E0)
00460       AP(1) = 1.0E0
00461       IF (AW2.LT.TOL) GO TO 20
00462       DO 10 K=2,30
00463         P(K) = P(K-1)*W2
00464         SUMA = SUMA + P(K)*CMPLX(GAMA(K),0.0E0)
00465         AP(K) = AP(K-1)*AW2
00466         IF (AP(K).LT.TOL) GO TO 20
00467    10 CONTINUE
00468       K = 30
00469    20 CONTINUE
00470       KMAX = K
00471       ZETA = W2*SUMA
00472       ARG = ZETA*CMPLX(FN23,0.0E0)
00473       ZA = CSQRT(SUMA)
00474       ZETA2 = CSQRT(W2)*CMPLX(FNU,0.0E0)
00475       ZETA1 = ZETA2*(CONE+ZETA*ZA*CMPLX(EX2,0.0E0))
00476       ZA = ZA + ZA
00477       PHI = CSQRT(ZA)*RFN13
00478       IF (IPMTR.EQ.1) GO TO 120
00479 C-----------------------------------------------------------------------
00480 C     SUM SERIES FOR ASUM AND BSUM
00481 C-----------------------------------------------------------------------
00482       SUMB = CZERO
00483       DO 30 K=1,KMAX
00484         SUMB = SUMB + P(K)*CMPLX(BETA(K),0.0E0)
00485    30 CONTINUE
00486       ASUM = CZERO
00487       BSUM = SUMB
00488       L1 = 0
00489       L2 = 30
00490       BTOL = TOL*CABS(BSUM)
00491       ATOL = TOL
00492       PP = 1.0E0
00493       IAS = 0
00494       IBS = 0
00495       IF (RFNU2.LT.TOL) GO TO 110
00496       DO 100 IS=2,7
00497         ATOL = ATOL/RFNU2
00498         PP = PP*RFNU2
00499         IF (IAS.EQ.1) GO TO 60
00500         SUMA = CZERO
00501         DO 40 K=1,KMAX
00502           M = L1 + K
00503           SUMA = SUMA + P(K)*CMPLX(ALFA(M),0.0E0)
00504           IF (AP(K).LT.ATOL) GO TO 50
00505    40   CONTINUE
00506    50   CONTINUE
00507         ASUM = ASUM + SUMA*CMPLX(PP,0.0E0)
00508         IF (PP.LT.TOL) IAS = 1
00509    60   CONTINUE
00510         IF (IBS.EQ.1) GO TO 90
00511         SUMB = CZERO
00512         DO 70 K=1,KMAX
00513           M = L2 + K
00514           SUMB = SUMB + P(K)*CMPLX(BETA(M),0.0E0)
00515           IF (AP(K).LT.ATOL) GO TO 80
00516    70   CONTINUE
00517    80   CONTINUE
00518         BSUM = BSUM + SUMB*CMPLX(PP,0.0E0)
00519         IF (PP.LT.BTOL) IBS = 1
00520    90   CONTINUE
00521         IF (IAS.EQ.1 .AND. IBS.EQ.1) GO TO 110
00522         L1 = L1 + 30
00523         L2 = L2 + 30
00524   100 CONTINUE
00525   110 CONTINUE
00526       ASUM = ASUM + CONE
00527       PP = RFNU*REAL(RFN13)
00528       BSUM = BSUM*CMPLX(PP,0.0E0)
00529   120 CONTINUE
00530       RETURN
00531 C-----------------------------------------------------------------------
00532 C     CABS(W2).GT.0.25E0
00533 C-----------------------------------------------------------------------
00534   130 CONTINUE
00535       W = CSQRT(W2)
00536       WR = REAL(W)
00537       WI = AIMAG(W)
00538       IF (WR.LT.0.0E0) WR = 0.0E0
00539       IF (WI.LT.0.0E0) WI = 0.0E0
00540       W = CMPLX(WR,WI)
00541       ZA = (CONE+W)/ZB
00542       ZC = CLOG(ZA)
00543       ZCR = REAL(ZC)
00544       ZCI = AIMAG(ZC)
00545       IF (ZCI.LT.0.0E0) ZCI = 0.0E0
00546       IF (ZCI.GT.HPI) ZCI = HPI
00547       IF (ZCR.LT.0.0E0) ZCR = 0.0E0
00548       ZC = CMPLX(ZCR,ZCI)
00549       ZTH = (ZC-W)*CMPLX(1.5E0,0.0E0)
00550       CFNU = CMPLX(FNU,0.0E0)
00551       ZETA1 = ZC*CFNU
00552       ZETA2 = W*CFNU
00553       AZTH = CABS(ZTH)
00554       ZTHR = REAL(ZTH)
00555       ZTHI = AIMAG(ZTH)
00556       ANG = THPI
00557       IF (ZTHR.GE.0.0E0 .AND. ZTHI.LT.0.0E0) GO TO 140
00558       ANG = HPI
00559       IF (ZTHR.EQ.0.0E0) GO TO 140
00560       ANG = ATAN(ZTHI/ZTHR)
00561       IF (ZTHR.LT.0.0E0) ANG = ANG + PI
00562   140 CONTINUE
00563       PP = AZTH**EX2
00564       ANG = ANG*EX2
00565       ZETAR = PP*COS(ANG)
00566       ZETAI = PP*SIN(ANG)
00567       IF (ZETAI.LT.0.0E0) ZETAI = 0.0E0
00568       ZETA = CMPLX(ZETAR,ZETAI)
00569       ARG = ZETA*CMPLX(FN23,0.0E0)
00570       RTZTA = ZTH/ZETA
00571       ZA = RTZTA/W
00572       PHI = CSQRT(ZA+ZA)*RFN13
00573       IF (IPMTR.EQ.1) GO TO 120
00574       TFN = CMPLX(RFNU,0.0E0)/W
00575       RZTH = CMPLX(RFNU,0.0E0)/ZTH
00576       ZC = RZTH*CMPLX(AR(2),0.0E0)
00577       T2 = CONE/W2
00578       UP(2) = (T2*CMPLX(C(2),0.0E0)+CMPLX(C(3),0.0E0))*TFN
00579       BSUM = UP(2) + ZC
00580       ASUM = CZERO
00581       IF (RFNU.LT.TOL) GO TO 220
00582       PRZTH = RZTH
00583       PTFN = TFN
00584       UP(1) = CONE
00585       PP = 1.0E0
00586       BSUMR = REAL(BSUM)
00587       BSUMI = AIMAG(BSUM)
00588       BTOL = TOL*(ABS(BSUMR)+ABS(BSUMI))
00589       KS = 0
00590       KP1 = 2
00591       L = 3
00592       IAS = 0
00593       IBS = 0
00594       DO 210 LR=2,12,2
00595         LRP1 = LR + 1
00596 C-----------------------------------------------------------------------
00597 C     COMPUTE TWO ADDITIONAL CR, DR, AND UP FOR TWO MORE TERMS IN
00598 C     NEXT SUMA AND SUMB
00599 C-----------------------------------------------------------------------
00600         DO 160 K=LR,LRP1
00601           KS = KS + 1
00602           KP1 = KP1 + 1
00603           L = L + 1
00604           ZA = CMPLX(C(L),0.0E0)
00605           DO 150 J=2,KP1
00606             L = L + 1
00607             ZA = ZA*T2 + CMPLX(C(L),0.0E0)
00608   150     CONTINUE
00609           PTFN = PTFN*TFN
00610           UP(KP1) = PTFN*ZA
00611           CR(KS) = PRZTH*CMPLX(BR(KS+1),0.0E0)
00612           PRZTH = PRZTH*RZTH
00613           DR(KS) = PRZTH*CMPLX(AR(KS+2),0.0E0)
00614   160   CONTINUE
00615         PP = PP*RFNU2
00616         IF (IAS.EQ.1) GO TO 180
00617         SUMA = UP(LRP1)
00618         JU = LRP1
00619         DO 170 JR=1,LR
00620           JU = JU - 1
00621           SUMA = SUMA + CR(JR)*UP(JU)
00622   170   CONTINUE
00623         ASUM = ASUM + SUMA
00624         ASUMR = REAL(ASUM)
00625         ASUMI = AIMAG(ASUM)
00626         TEST = ABS(ASUMR) + ABS(ASUMI)
00627         IF (PP.LT.TOL .AND. TEST.LT.TOL) IAS = 1
00628   180   CONTINUE
00629         IF (IBS.EQ.1) GO TO 200
00630         SUMB = UP(LR+2) + UP(LRP1)*ZC
00631         JU = LRP1
00632         DO 190 JR=1,LR
00633           JU = JU - 1
00634           SUMB = SUMB + DR(JR)*UP(JU)
00635   190   CONTINUE
00636         BSUM = BSUM + SUMB
00637         BSUMR = REAL(BSUM)
00638         BSUMI = AIMAG(BSUM)
00639         TEST = ABS(BSUMR) + ABS(BSUMI)
00640         IF (PP.LT.BTOL .AND. TEST.LT.TOL) IBS = 1
00641   200   CONTINUE
00642         IF (IAS.EQ.1 .AND. IBS.EQ.1) GO TO 220
00643   210 CONTINUE
00644   220 CONTINUE
00645       ASUM = ASUM + CONE
00646       BSUM = -BSUM*RFN13/RTZTA
00647       GO TO 120
00648       END
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines