* * $Id: c321m.F,v 1.1.1.1 1996/04/01 15:01:15 mclareni Exp $ * * $Log: c321m.F,v $ * Revision 1.1.1.1 1996/04/01 15:01:15 mclareni * Mathlib gen * * #include "gen/pilot.h" SUBROUTINE C321M COMPLEX CGPLG,T #include "gen/defc64.inc" + WGPLG,DTST(4,4,7),DT #include "gen/def64.inc" + DX(7),DD LOGICAL LER,LET #include "iorc.inc" #include "gen/gcmpfun.inc" DATA D,DD /1.0E-6,8.0D-14/ DATA DX /-2.0D0,-0.5D0,0.25D0,0.75D0,1.0D0,1.5D0,5.0D0/ #if defined(CERNLIB_CMPXDOUB) DATA DTST(1,1,1) /(-.14367463668836D+01, .00000000000000D+00)/ DATA DTST(1,1,2) /(-.44841420692365D+00, .00000000000000D+00)/ DATA DTST(1,1,3) /( .26765263908274D+00, .00000000000000D+00)/ DATA DTST(1,1,4) /( .97846939293027D+00, .00000000000000D+00)/ DATA DTST(1,1,5) /( .16449340668482D+01, .00000000000000D+00)/ DATA DTST(1,1,6) /( .23743952702724D+01,-.12738062049196D+01)/ DATA DTST(1,1,7) /( .17837191612667D+01,-.50561983221119D+01)/ DATA DTST(1,2,1) /( .42720966853130D+00, .00000000000000D+00)/ DATA DTST(1,2,2) /( .46936455382062D-01, .00000000000000D+00)/ DATA DTST(1,2,3) /( .18777455158514D-01, .00000000000000D+00)/ DATA DTST(1,2,4) /( .29611472554438D+00, .00000000000000D+00)/ DATA DTST(1,2,5) /( .12020569031596D+01, .00000000000000D+00)/ DATA DTST(1,2,6) /( .81985149949006D-01,-.22916699577564D+01)/ DATA DTST(1,2,7) /(-.55120087401031D+01,-.43600623305262D+00)/ DATA DTST(1,3,1) /(-.10839640607013D+00, .00000000000000D+00)/ DATA DTST(1,3,2) /(-.42967574086140D-02, .00000000000000D+00)/ DATA DTST(1,3,3) /( .11854864944918D-02, .00000000000000D+00)/ DATA DTST(1,3,4) /( .84974137061581D-01, .00000000000000D+00)/ DATA DTST(1,3,5) /( .10823232337111D+01, .00000000000000D+00)/ DATA DTST(1,3,6) /(-.15739031587440D+01,-.67184525068998D+00)/ DATA DTST(1,3,7) /( .12291176779042D+01, .44586335630285D+01)/ DATA DTST(1,4,1) /( .22844930902103D-01, .00000000000000D+00)/ DATA DTST(1,4,2) /( .32977000196983D-03, .00000000000000D+00)/ DATA DTST(1,4,3) /( .63465221918669D-04, .00000000000000D+00)/ DATA DTST(1,4,4) /( .21151229130701D-01, .00000000000000D+00)/ DATA DTST(1,4,5) /( .10369277551434D+01, .00000000000000D+00)/ DATA DTST(1,4,6) /(-.69243037945201D+00, .80548935383572D+00)/ DATA DTST(1,4,7) /( .25127799048950D+01,-.18955713596774D+01)/ DATA DTST(2,1,1) /(-.16682833639666D+01, .00000000000000D+00)/ DATA DTST(2,1,2) /(-.47259784465890D+00, .00000000000000D+00)/ DATA DTST(2,1,3) /( .25846139579657D+00, .00000000000000D+00)/ DATA DTST(2,1,4) /( .84442580886221D+00, .00000000000000D+00)/ DATA DTST(2,1,5) /( .12020569031596D+01, .00000000000000D+00)/ DATA DTST(2,1,6) /( .20608775073203D+01,-.25824198529329D+00)/ DATA DTST(2,1,7) /( .48053441029656D+01,-.40688186361962D+01)/ DATA DTST(2,2,1) /( .27346271026774D+00, .00000000000000D+00)/ DATA DTST(2,2,2) /( .25698947631681D-01, .00000000000000D+00)/ DATA DTST(2,2,3) /( .88118410049710D-02, .00000000000000D+00)/ DATA DTST(2,2,4) /( .11078822950993D+00, .00000000000000D+00)/ DATA DTST(2,2,5) /( .27058080842778D+00, .00000000000000D+00)/ DATA DTST(2,2,6) /( .63148881513230D+00,-.60273727974786D+00)/ DATA DTST(2,2,7) /(-.27426074173557D+01,-.30029477269020D+01)/ DATA DTST(2,3,1) /(-.48899618400242D-01, .00000000000000D+00)/ DATA DTST(2,3,2) /(-.16043036975596D-02, .00000000000000D+00)/ DATA DTST(2,3,3) /( .36439773702569D-03, .00000000000000D+00)/ DATA DTST(2,3,4) /( .19244816743277D-01, .00000000000000D+00)/ DATA DTST(2,3,5) /( .96551159989444D-01, .00000000000000D+00)/ DATA DTST(2,3,6) /(-.76143513871523D-01,-.45222047877242D+00)/ DATA DTST(2,3,7) /(-.14264256992301D+01, .21581713178311D+01)/ DATA DTST(3,1,1) /(-.18131260153285D+01, .00000000000000D+00)/ DATA DTST(3,1,2) /(-.48571453783061D+00, .00000000000000D+00)/ DATA DTST(3,1,3) /( .25411619074634D+00, .00000000000000D+00)/ DATA DTST(3,1,4) /( .79222102797278D+00, .00000000000000D+00)/ DATA DTST(3,1,5) /( .10823232337111D+01, .00000000000000D+00)/ DATA DTST(3,1,6) /( .17347570807760D+01,-.34902704828337D-01)/ DATA DTST(3,1,7) /( .59433309497680D+01,-.21828369906374D+01)/ DATA DTST(3,2,1) /( .16317073401120D+00, .00000000000000D+00)/ DATA DTST(3,2,2) /( .13675034531232D-01, .00000000000000D+00)/ DATA DTST(3,2,3) /( .42273354896927D-02, .00000000000000D+00)/ DATA DTST(3,2,4) /( .46605158823529D-01, .00000000000000D+00)/ DATA DTST(3,2,5) /( .96551159989444D-01, .00000000000000D+00)/ DATA DTST(3,2,6) /( .29828501641114D+00,-.93702799881914D-01)/ DATA DTST(3,2,7) /(-.28850776666256D+00,-.25005296464634D+01)/ DATA DTST(4,1,1) /(-.18981494563160D+01, .00000000000000D+00)/ DATA DTST(4,1,2) /(-.49264922998110D+00, .00000000000000D+00)/ DATA DTST(4,1,3) /( .25202158817858D+00, .00000000000000D+00)/ DATA DTST(4,1,4) /( .76973541059980D+00, .00000000000000D+00)/ DATA DTST(4,1,5) /( .10369277551434D+01, .00000000000000D+00)/ DATA DTST(4,1,6) /( .15961739456814D+01,-.35379572466222D-02)/ DATA DTST(4,1,7) /( .58810211422474D+01,-.87828515234895D+00)/ #endif #if !defined(CERNLIB_CMPXDOUB) DATA DTST(1,1,1) /(-.14367463668836E+01, .00000000000000E+00)/ DATA DTST(1,1,2) /(-.44841420692365E+00, .00000000000000E+00)/ DATA DTST(1,1,3) /( .26765263908274E+00, .00000000000000E+00)/ DATA DTST(1,1,4) /( .97846939293027E+00, .00000000000000E+00)/ DATA DTST(1,1,5) /( .16449340668482E+01, .00000000000000E+00)/ DATA DTST(1,1,6) /( .23743952702724E+01,-.12738062049196E+01)/ DATA DTST(1,1,7) /( .17837191612667E+01,-.50561983221119E+01)/ DATA DTST(1,2,1) /( .42720966853130E+00, .00000000000000E+00)/ DATA DTST(1,2,2) /( .46936455382062E-01, .00000000000000E+00)/ DATA DTST(1,2,3) /( .18777455158514E-01, .00000000000000E+00)/ DATA DTST(1,2,4) /( .29611472554438E+00, .00000000000000E+00)/ DATA DTST(1,2,5) /( .12020569031596E+01, .00000000000000E+00)/ DATA DTST(1,2,6) /( .81985149949006E-01,-.22916699577564E+01)/ DATA DTST(1,2,7) /(-.55120087401031E+01,-.43600623305262E+00)/ DATA DTST(1,3,1) /(-.10839640607013E+00, .00000000000000E+00)/ DATA DTST(1,3,2) /(-.42967574086140E-02, .00000000000000E+00)/ DATA DTST(1,3,3) /( .11854864944918E-02, .00000000000000E+00)/ DATA DTST(1,3,4) /( .84974137061581E-01, .00000000000000E+00)/ DATA DTST(1,3,5) /( .10823232337111E+01, .00000000000000E+00)/ DATA DTST(1,3,6) /(-.15739031587440E+01,-.67184525068998E+00)/ DATA DTST(1,3,7) /( .12291176779042E+01, .44586335630285E+01)/ DATA DTST(1,4,1) /( .22844930902103E-01, .00000000000000E+00)/ DATA DTST(1,4,2) /( .32977000196983E-03, .00000000000000E+00)/ DATA DTST(1,4,3) /( .63465221918669E-04, .00000000000000E+00)/ DATA DTST(1,4,4) /( .21151229130701E-01, .00000000000000E+00)/ DATA DTST(1,4,5) /( .10369277551434E+01, .00000000000000E+00)/ DATA DTST(1,4,6) /(-.69243037945201E+00, .80548935383572E+00)/ DATA DTST(1,4,7) /( .25127799048950E+01,-.18955713596774E+01)/ DATA DTST(2,1,1) /(-.16682833639666E+01, .00000000000000E+00)/ DATA DTST(2,1,2) /(-.47259784465890E+00, .00000000000000E+00)/ DATA DTST(2,1,3) /( .25846139579657E+00, .00000000000000E+00)/ DATA DTST(2,1,4) /( .84442580886221E+00, .00000000000000E+00)/ DATA DTST(2,1,5) /( .12020569031596E+01, .00000000000000E+00)/ DATA DTST(2,1,6) /( .20608775073203E+01,-.25824198529329E+00)/ DATA DTST(2,1,7) /( .48053441029656E+01,-.40688186361962E+01)/ DATA DTST(2,2,1) /( .27346271026774E+00, .00000000000000E+00)/ DATA DTST(2,2,2) /( .25698947631681E-01, .00000000000000E+00)/ DATA DTST(2,2,3) /( .88118410049710E-02, .00000000000000E+00)/ DATA DTST(2,2,4) /( .11078822950993E+00, .00000000000000E+00)/ DATA DTST(2,2,5) /( .27058080842778E+00, .00000000000000E+00)/ DATA DTST(2,2,6) /( .63148881513230E+00,-.60273727974786E+00)/ DATA DTST(2,2,7) /(-.27426074173557E+01,-.30029477269020E+01)/ DATA DTST(2,3,1) /(-.48899618400242E-01, .00000000000000E+00)/ DATA DTST(2,3,2) /(-.16043036975596E-02, .00000000000000E+00)/ DATA DTST(2,3,3) /( .36439773702569E-03, .00000000000000E+00)/ DATA DTST(2,3,4) /( .19244816743277E-01, .00000000000000E+00)/ DATA DTST(2,3,5) /( .96551159989444E-01, .00000000000000E+00)/ DATA DTST(2,3,6) /(-.76143513871523E-01,-.45222047877242E+00)/ DATA DTST(2,3,7) /(-.14264256992301E+01, .21581713178311E+01)/ DATA DTST(3,1,1) /(-.18131260153285E+01, .00000000000000E+00)/ DATA DTST(3,1,2) /(-.48571453783061E+00, .00000000000000E+00)/ DATA DTST(3,1,3) /( .25411619074634E+00, .00000000000000E+00)/ DATA DTST(3,1,4) /( .79222102797278E+00, .00000000000000E+00)/ DATA DTST(3,1,5) /( .10823232337111E+01, .00000000000000E+00)/ DATA DTST(3,1,6) /( .17347570807760E+01,-.34902704828337E-01)/ DATA DTST(3,1,7) /( .59433309497680E+01,-.21828369906374E+01)/ DATA DTST(3,2,1) /( .16317073401120E+00, .00000000000000E+00)/ DATA DTST(3,2,2) /( .13675034531232E-01, .00000000000000E+00)/ DATA DTST(3,2,3) /( .42273354896927E-02, .00000000000000E+00)/ DATA DTST(3,2,4) /( .46605158823529E-01, .00000000000000E+00)/ DATA DTST(3,2,5) /( .96551159989444E-01, .00000000000000E+00)/ DATA DTST(3,2,6) /( .29828501641114E+00,-.93702799881914E-01)/ DATA DTST(3,2,7) /(-.28850776666256E+00,-.25005296464634E+01)/ DATA DTST(4,1,1) /(-.18981494563160E+01, .00000000000000E+00)/ DATA DTST(4,1,2) /(-.49264922998110E+00, .00000000000000E+00)/ DATA DTST(4,1,3) /( .25202158817858E+00, .00000000000000E+00)/ DATA DTST(4,1,4) /( .76973541059980E+00, .00000000000000E+00)/ DATA DTST(4,1,5) /( .10369277551434E+01, .00000000000000E+00)/ DATA DTST(4,1,6) /( .15961739456814E+01,-.35379572466222E-02)/ DATA DTST(4,1,7) /( .58810211422474E+01,-.87828515234895E+00)/ #endif CALL HEADER('C321',0) LET=.FALSE. DO 1 N = 1,4 DO 2 M = 1,4 IF(N+M .GT. 5) GO TO 2 DO 3 IX = 1,7 #if defined(CERNLIB_DOUBLE) T=CGPLG(N,M,SNGL(DX(IX))) LER=ABS(REAL(T)-SNGL(GREAL(DTST(N,M,IX)))) .GT. D .OR. 1 ABS(AIMAG(T)-SNGL(GIMAG(DTST(N,M,IX)))) .GT. D #endif #if !defined(CERNLIB_DOUBLE) T=CGPLG(N,M,DX(IX)) LER=ABS(REAL(T)-(GREAL(DTST(N,M,IX)))) .GT. D .OR. 1 ABS(AIMAG(T)-(GIMAG(DTST(N,M,IX)))) .GT. D #endif LET=LET .OR. LER #if defined(CERNLIB_DOUBLE) IF(LER) WRITE(LOUT,100) N,M,SNGL(DX(IX)) #endif #if !defined(CERNLIB_DOUBLE) IF(LER) WRITE(LOUT,100) N,M, DX(IX) #endif 3 CONTINUE 2 CONTINUE 1 CONTINUE IF(.NOT.LET) WRITE(LOUT,101) #if defined(CERNLIB_DOUBLE) LET=.FALSE. DO 11 N = 1,4 DO 12 M = 1,4 IF(N+M .GT. 5) GO TO 12 DO 13 IX = 1,7 DT=WGPLG(N,M,DX(IX)) LER=ABS(REAL(DT)-REAL(DTST(N,M,IX))) .GT. DD .OR. 1 ABS(GIMAG(DT)-GIMAG(DTST(N,M,IX))) .GT. DD LET=LET .OR. LER IF(LER) WRITE(LOUT,102) N,M,SNGL(DX(IX)) 13 CONTINUE 12 CONTINUE 11 CONTINUE IF(.NOT.LET) WRITE(LOUT,103) #endif WRITE(LOUT,'(/''TESTING ERROR MESSAGES:''/)') T=CGPLG(8,8,1.0) #if defined(CERNLIB_DOUBLE) T=WGPLG(8,8,1D0) #endif 100 FORMAT(1X,'***** C321 CGPLG TEST FAILED FOR N = ',I1, 1 ', M = ',I1,', X = ',F6.2) 101 FORMAT(1X,'***** C321 CGPLG TEST SUCCESSFUL') #if defined(CERNLIB_DOUBLE) 102 FORMAT(1X,'***** C321 WGPLG TEST FAILED FOR N = ',I1, 1 ', M = ',I1,', X = ',F6.2) 103 FORMAT(1X,'***** C321 WGPLG TEST SUCCESSFUL') #endif C Check if the test was successful IRC=ITEST('C321', .NOT. LET) CALL PAGEND('C321') RETURN END