SUBROUTINE DGR29 (Z, U, T) c Copyright (c) 1996 California Institute of Technology, Pasadena, CA. c ALL RIGHTS RESERVED. c Based on Government Sponsored Research NAS7-03001. c>> 1994-10-20 DGR29 Krogh Changes to use M77CON c>> 1994-05-10 DGR29 WVS produce SP and DP versions from same source. c>> 1993-08-03 DGR29 CLL Edited DATA stmts for conversion to C. c>> 1993-07-21 DGR29 WVS JPL Conversion from NSWC to Math 77 c--D replaces "?": ?GR29 C ---------------------------------------------------------------------- C C ALGORITHM USING MINIMAX APPROXIMATIONS C C ---------------------------------------------------------------------- DOUBLE PRECISION Z, U, T DOUBLE PRECISION A0(7), A1(7), A2(7), A3(7), A4(7), A5(7), A6(4), * A7(5), A8(5), A9(5), A10(4), A11(4), A12(4), * A13(3), A14(3), A15(2), A16(2), A17(1), A18(1) DOUBLE PRECISION B0(9), B1(9), B2(8), B3(8), B4(8), B5(7), B6(9), * B7(7), B8(7), B9(6), B10(6), B11(5), B12(4), * B13(4), B14(2), B15(2), B16(1) DOUBLE PRECISION C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, * C11, C12, C13, C14, C15, C16 DOUBLE PRECISION D0(7) DOUBLE PRECISION D01, D02, D03, D04, D05 PARAMETER (D01 =-1.0D0 / 3.0D0) PARAMETER (D02 = 1.0D0 / 12.0D0) PARAMETER (D03 =-2.0D0 / 135.0D0) PARAMETER (D04 = 1.0D0 / 864.0D0) PARAMETER (D05 = 1.0D0 / 2835.0D0) C -------------------------- DATA D0 / D01 , D02 , D03 , D04, D05 , * -.178755144032921810699588477366D-03, * .391926317852243778169704095630D-04/ C -------------------------- DATA A0 /-.234443848930188413698825870D-08, * -.408902435641223939887180303D-07, * -.327874000161065050049103731D-06, * -.145717031728609218851588740D-05, * -.372722892959910688597417881D-05, * -.490033281596113358850307112D-05, * -.218544851067999216147364227D-05/ DATA B0 /-.129786815987713980865910767D-09, * .319268409139858531586963150D-08, * .597739416777031660496708557D-04, * .131659965062389880196860991D-02, * .138263099503103838517015533D-01, * .866750030433403450681521877D-01, * .349373447613102956696810725D+00, * .902581259032419042347458484D+00, * .139388806936391316154237713D+01/ C -------------------------- DATA A1 /-.162671127226300802902860047D-05, * -.359791514993122440319624428D-04, * -.334816794629374699945489443D-03, * -.167787748352827199882047653D-02, * -.462960105006279850867332060D-02, * -.627269388216833251971110268D-02, * -.185185185185185185185185200D-02/ DATA B1 /.361538770500640888027927000D-09, * .974094440943696092434381137D-05, * .275463718595762102271929980D-03, * .356903970692700621824901511D-02, * .276755209895072417713430394D-01, * .140741499324744724262767201D+00, * .482173396010404307346794795D+00, * .109307843990990308990473663D+01, * .151225469637089956064399494D+01/ C -------------------------- DATA A2 /.100841467329617467204527243D-06, * .261809837060522545971782889D-05, * .351658023234640143803014403D-04, * .287368655528567495658887760D-03, * .138385867950361368914038461D-02, * .365985331203490698463644329D-02, * .413359788359788359788359644D-02/ DATA B2 /.144996224602847932479320241D-04, * .378705615967233119938297206D-03, * .457258679387716305283282667D-02, * .333036784835643463383606186D-01, * .160392471625881407829191009D+00, * .524238095721639512312120765D+00, * .114320896084982707537755002D+01, * .153405837991415136438992306D+01/ C -------------------------- DATA A3 /.352304123782956092061364635D-06, * .695396758348887902366951353D-05, * .620467118988901865955998784D-04, * .331552280167649130371474456D-03, * .987931909328964685388525477D-03, * .141844584435355290321010006D-02, * .649434156378600823045102236D-03/ DATA B3 /.656342109234806261144233394D-04, * .130398975231883219976260776D-02, * .126418031281256648240652355D-01, * .760733201461716525855765749D-01, * .308149284260387354956024487D+00, * .856743428738899911100227393D+00, * .159678625605457556492814589D+01, * .183078413578083710405050462D+01/ C -------------------------- DATA A4 /-.260879135093022176005540138D-07, * -.470448694272734954500324169D-06, * -.487392507564453824976295590D-05, * -.337525643163070607393381432D-04, * -.173138093150706317400323103D-03, * -.619343030286408407629007048D-03, * -.861888290916711698604710684D-03/ DATA B4 /.561738585657138771286755470D-04, * .104553622856827932853059322D-02, * .990129468337836044520381371D-02, * .590964360473404599955095091D-01, * .241580582651643837306299024D+00, * .686949677014349678482109368D+00, * .133507902144433100426436242D+01, * .162826466816694512158165085D+01/ C -------------------------- DATA A5 /-.116166342948098688243985652D-07, * .506465072067030007394288471D-08, * -.556701576804390213081214801D-05, * -.332229941748769925615918550D-04, * -.171902547619915856635305717D-03, * -.548868487607991087508092013D-03, * -.336798553366358151161633777D-03/ DATA B5 /.106576106868815233442641444D-03, * .280714123386276098548285440D-02, * .254669201041872409738119341D-01, * .136071713023783507468096673D+00, * .462890328922621047510807887D+00, * .103913867517817784825064299D+01, * .142263185288429590449288300D+01/ C -------------------------- DATA A6 /.118384620224413424936260301D-04, * .694345283181981060040314140D-05, * .209213745619758030399432459D-03, * .531307936463992224884286210D-03/ DATA B6 /-.633002360430352916354621750D-05, * -.248639208901374031411609873D-04, * .151734058829700925162000373D-03, * .477475914272399601740818883D-02, * .384410125775084107229541456D-01, * .184699876959596092801262547D+00, * .571784440733980642101712125D+00, * .118432122801495778365352945D+01, * .150831585220968267709550582D+01/ C -------------------------- DATA A7 /.972342656522493967167788395D-05, * .462793722775687016808279009D-04, * .208913588225005764102252127D-03, * .605983804794748515383615779D-03, * .344367606892381545765962366D-03/ DATA B7 /.215964480325937088444595990D-03, * .621296161441756044580440529D-02, * .497403555098433701440032746D-01, * .230812334251394761909158355D+00, * .682159830165959997577293001D+00, * .133753662990343866552766613D+01, * .160951809815647533045690195D+01/ C -------------------------- DATA A8 /-.231069438570167401077137510D-05, * -.192877995065652524742879002D-04, * -.282551884312564905942488077D-04, * -.353272052089782073130912603D-03, * -.652623918595320914510590273D-03/ DATA B8 /.156052480203446255774109882D-02, * .189231675289329563916597032D-01, * .110127834209242088316741250D+00, * .407929996207245634766606879D+00, * .101702505946784412105505734D+01, * .172269407630659768618234623D+01, * .182765408802230546887514255D+01/ C -------------------------- DATA A9 /-.203007139532451428594124139D-04, * -.120148495117517992204095691D-03, * -.377126645910917006921076652D-03, * -.109151697941931403194363814D-02, * -.596761290192642722092337263D-03/ DATA B9 /.108808775028021530146610124D-01, * .803149717787956717154553908D-01, * .335555306170768573903990019D+00, * .881575022436158946373557744D+00, * .156222230858412078350692234D+01, * .170833470935668756293234818D+01/ C -------------------------- DATA A10 / .475862254251166503473724173D-04, * -.352503880413640910997936559D-04, * .580375987713106460207815603D-03, * .133244544950730832649306319D-02/ DATA B10 /.161103572271541189817119144D-01, * .114651544043625219459951640D+00, * .448280675300097555552484502D+00, * .110810715319704031415255670D+01, * .183146436130501918547134176D+01, * .187235769169449339141968881D+01/ C -------------------------- DATA A11 /.121185049262809526794966703D-03, * .717725173388339108430635016D-05, * .246371734409638623215800502D-02, * .157972766214718575927904484D-02/ DATA B11 /.794610889405176143379963912D-02, * .131627017265860324219513170D+00, * .505939635317477779328000706D+00, * .116082103318559904744144217D+01, * .145670749780693850410866175D+01/ C -------------------------- DATA A12 /-.246294151509758620837749269D-03, * .650624975008642297405944869D-03, * -.214376520139497301154749750D-03, * -.407251199495291398243480255D-02/ DATA B12 /.168390445944818504703640731D+00, * .653453590771198550320727688D+00, * .140298208333879535577602171D+01, * .162497775209192630951344224D+01/ C -------------------------- DATA A13 /-.159520095187034545391135461D-02, * -.109727312966041723997078734D-01, * -.594758070915055362667114240D-02/ DATA B13 /.207815761771742289849225339D+00, * .790935125477975506817064616D+00, * .158706682625067673596619095D+01, * .175409273929961597148916309D+01/ C -------------------------- DATA A14 / .245543970647383469794050102D-02, * -.119636668153843644820445054D-01, * .175722793448246103440764372D-01/ DATA B14 /.676925518749829493412063599D+00, * .100158659226079685399214158D+01/ C -------------------------- DATA A15 /.588261033368548917447688791D-01, * .400765463491067514929787780D-01/ DATA B15 /.124266359850901469771032599D+01, * .149189509890654955611528542D+01/ C -------------------------- DATA A16 / .119522261141925960204472459D+00, * -.100326700196947262548667584D+00/ DATA B16 /.536462039767059451769400255D+00/ C -------------------------- DATA A17 /-.259949826752497731336860753D+00/ C -------------------------- DATA A18 /.724036968309299822373280436D+00/ C -------------------------- C T = ((((((A0(1)*Z + A0(2))*Z + A0(3))*Z + A0(4))*Z + A0(5))*Z + * A0(6))*Z + A0(7)) / (((((((((B0(1)*Z + B0(2))*Z + * B0(3))*Z + B0(4))*Z + B0(5))*Z + B0(6))*Z + B0(7))*Z + * B0(8))*Z + B0(9))*Z + 1.0D0) C0 = ((((((T*Z + D0(7))*Z + D0(6))*Z + D0(5))*Z + D0(4))*Z + * D0(3))*Z + D0(2))*Z + D0(1) C1 = ((((((A1(1)*Z + A1(2))*Z + A1(3))*Z + A1(4))*Z + A1(5))*Z + * A1(6))*Z + A1(7)) / (((((((((B1(1)*Z + B1(2))*Z + * B1(3))*Z + B1(4))*Z + B1(5))*Z + B1(6))*Z + B1(7))*Z + * B1(8))*Z + B1(9))*Z + 1.0D0) C2 = ((((((A2(1)*Z + A2(2))*Z + A2(3))*Z + A2(4))*Z + A2(5))*Z + * A2(6))*Z + A2(7)) / ((((((((B2(1)*Z + B2(2))*Z + * B2(3))*Z + B2(4))*Z + B2(5))*Z + B2(6))*Z + B2(7))*Z + * B2(8))*Z + 1.0D0) C3 = ((((((A3(1)*Z + A3(2))*Z + A3(3))*Z + A3(4))*Z + A3(5))*Z + * A3(6))*Z + A3(7)) / ((((((((B3(1)*Z + B3(2))*Z + * B3(3))*Z + B3(4))*Z + B3(5))*Z + B3(6))*Z + B3(7))*Z + * B3(8))*Z + 1.0D0) C4 = ((((((A4(1)*Z + A4(2))*Z + A4(3))*Z + A4(4))*Z + A4(5))*Z + * A4(6))*Z + A4(7)) / ((((((((B4(1)*Z + B4(2))*Z + * B4(3))*Z + B4(4))*Z + B4(5))*Z + B4(6))*Z + B4(7))*Z + * B4(8))*Z + 1.0D0) C5 = ((((((A5(1)*Z + A5(2))*Z + A5(3))*Z + A5(4))*Z + A5(5))*Z + * A5(6))*Z + A5(7)) / (((((((B5(1)*Z + B5(2))*Z + * B5(3))*Z + B5(4))*Z + B5(5))*Z + B5(6))*Z + B5(7))*Z + * 1.0D0) C6 = (((A6(1)*Z + A6(2))*Z + A6(3))*Z + A6(4)) /(((((((((B6(1)*Z + * B6(2))*Z + B6(3))*Z + B6(4))*Z + B6(5))*Z + B6(6))*Z + * B6(7))*Z + B6(8))*Z + B6(9))*Z + 1.0D0) C7 = ((((A7(1)*Z + A7(2))*Z + A7(3))*Z + A7(4))*Z + A7(5)) / * (((((((B7(1)*Z + B7(2))*Z + B7(3))*Z + B7(4))*Z + B7(5))*Z + * B7(6))*Z + B7(7))*Z + 1.0D0) C8 = ((((A8(1)*Z + A8(2))*Z + A8(3))*Z + A8(4))*Z + A8(5)) / * (((((((B8(1)*Z + B8(2))*Z + B8(3))*Z + B8(4))*Z + B8(5))*Z + * B8(6))*Z + B8(7))*Z + 1.0D0) C9 = ((((A9(1)*Z + A9(2))*Z + A9(3))*Z + A9(4))*Z + A9(5)) / * ((((((B9(1)*Z + B9(2))*Z + B9(3))*Z + B9(4))*Z + B9(5))*Z + * B9(6))*Z + 1.0D0) C10 = (((A10(1)*Z + A10(2))*Z + A10(3))*Z + A10(4)) / * ((((((B10(1)*Z + B10(2))*Z + B10(3))*Z + B10(4))*Z + * B10(5))*Z + B10(6))*Z + 1.0D0) C11 = (((A11(1)*Z + A11(2))*Z + A11(3))*Z + A11(4)) / * (((((B11(1)*Z + B11(2))*Z + B11(3))*Z + B11(4))*Z + * B11(5))*Z + 1.0D0) C12 = (((A12(1)*Z + A12(2))*Z + A12(3))*Z + A12(4)) / * ((((B12(1)*Z + B12(2))*Z + B12(3))*Z + B12(4))*Z + 1.0D0) C13 = ((A13(1)*Z + A13(2))*Z + A13(3)) / ((((B13(1)*Z + * B13(2))*Z + B13(3))*Z + B13(4))*Z + 1.0D0) C14 = ((A14(1)*Z + A14(2))*Z + A14(3)) / ((B14(1)*Z + * B14(2))*Z + 1.0D0) C15 = (A15(1)*Z + A15(2)) / ((B15(1)*Z + B15(2))*Z + 1.0D0) C16 = (A16(1)*Z + A16(2)) / (B16(1)*Z + 1.0D0) C T = (A18(1)*U + A17(1))*U + C16 T = (((((((((((((((T*U + C15)*U + C14)*U + C13)*U + C12)*U + * C11)*U + C10)*U + C9)*U + C8)*U + C7)*U + C6)*U + * C5)*U + C4)*U + C3)*U + C2)*U + C1)*U + C0 C RETURN END .