blob: 90dfa2828bd173f7c0609bca8f3ab87baea8d6b8 [file] [log] [blame]
PROGRAM FM823
C***********************************************************************00010823
C***** FORTRAN 77 00020823
C***** FM823 00030823
C***** YDASIN - (194) 00040823
C***** 00050823
C***********************************************************************00060823
C***** GENERAL PURPOSE ANS REF 00070823
C***** TEST INTRINSIC FUNCTION DASIN, DACOS 15.3 00080823
C***** TABLE 5 00090823
C***** 00100823
CBB** ********************** BBCCOMNT **********************************00110823
C**** 00120823
C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00130823
C**** VERSION 2.1 00140823
C**** 00150823
C**** 00160823
C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00170823
C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00180823
C**** SOFTWARE STANDARDS VALIDATION GROUP 00190823
C**** BUILDING 225 RM A266 00200823
C**** GAITHERSBURG, MD 20899 00210823
C**** 00220823
C**** 00230823
C**** 00240823
CBE** ********************** BBCCOMNT **********************************00250823
C***** 00260823
C***** S P E C I F I C A T I O N S SEGMENT 194 00270823
DOUBLE PRECISION AVD, BVD, CVD, DVCORR 00280823
C***** 00290823
CBB** ********************** BBCINITA **********************************00300823
C**** SPECIFICATION STATEMENTS 00310823
C**** 00320823
CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00330823
1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00340823
CBE** ********************** BBCINITA **********************************00350823
CBB** ********************** BBCINITB **********************************00360823
C**** INITIALIZE SECTION 00370823
DATA ZVERS, ZVERSD, ZDATE 00380823
1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00390823
DATA ZCOMPL, ZNAME, ZTAPE 00400823
1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00410823
DATA ZPROJ, ZTAPED, ZPROG 00420823
1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00430823
DATA REMRKS /' '/ 00440823
C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00450823
C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00460823
C**** 00470823
CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00480823
CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00490823
CZ03 ZPROG = 'PROGRAM NAME' 00500823
CZ04 ZDATE = 'DATE OF TEST' 00510823
CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00520823
CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00530823
CZ07 ZNAME = 'NAME OF USER' 00540823
CZ08 ZTAPE = 'TAPE OWNER/ID' 00550823
CZ09 ZTAPED = 'DATE TAPE COPIED' 00560823
C 00570823
IVPASS = 0 00580823
IVFAIL = 0 00590823
IVDELE = 0 00600823
IVINSP = 0 00610823
IVTOTL = 0 00620823
IVTOTN = 0 00630823
ICZERO = 0 00640823
C 00650823
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00660823
I01 = 05 00670823
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00680823
I02 = 06 00690823
C 00700823
CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00710823
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00720823
CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00730823
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00740823
C 00750823
CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00760823
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00770823
CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00780823
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00790823
C 00800823
CBE** ********************** BBCINITB **********************************00810823
NUVI = I02 00820823
IVTOTL = 12 00830823
ZPROG = 'FM823' 00840823
CBB** ********************** BBCHED0A **********************************00850823
C**** 00860823
C**** WRITE REPORT TITLE 00870823
C**** 00880823
WRITE (I02, 90002) 00890823
WRITE (I02, 90006) 00900823
WRITE (I02, 90007) 00910823
WRITE (I02, 90008) ZVERS, ZVERSD 00920823
WRITE (I02, 90009) ZPROG, ZPROG 00930823
WRITE (I02, 90010) ZDATE, ZCOMPL 00940823
CBE** ********************** BBCHED0A **********************************00950823
C***** 00960823
C***** HEADER FOR SEGMENT 194 00970823
WRITE(NUVI,19400) 00980823
19400 FORMAT(" ", / " YDASIN - (194) INTRINSIC FUNCTIONS" // 00990823
1 " DASIN, DACOS (DOUBLE PRECISION ARCSINE, ARCCOSINE)" //01000823
2 " ANS REF. - 15.3" ) 01010823
CBB** ********************** BBCHED0B **********************************01020823
C**** WRITE DETAIL REPORT HEADERS 01030823
C**** 01040823
WRITE (I02,90004) 01050823
WRITE (I02,90004) 01060823
WRITE (I02,90013) 01070823
WRITE (I02,90014) 01080823
WRITE (I02,90015) IVTOTL 01090823
CBE** ********************** BBCHED0B **********************************01100823
C***** 01110823
WRITE(NUVI,19401) 01120823
19401 FORMAT("0",8X,"TEST OF DASIN" ) 01130823
C***** 01140823
CT001* TEST 1 -1.0D0 FOR PRINCIPAL VALUE AT ENDPOINTS 01150823
IVTNUM = 1 01160823
BVD = -1.0D0 01170823
AVD = DASIN(BVD) 01180823
IF (AVD + 0.1570796328D+01) 20010, 10010, 40010 01190823
40010 IF (AVD + 0.1570796326D+01) 10010, 10010, 20010 01200823
10010 IVPASS = IVPASS + 1 01210823
WRITE (NUVI, 80002) IVTNUM 01220823
GO TO 0011 01230823
20010 IVFAIL = IVFAIL + 1 01240823
DVCORR = -1.5707963267948966192D+00 01250823
WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 01260823
0011 CONTINUE 01270823
CT002* TEST 2 +1.0D0 FOR PRINCIPAL VALUE AT ENDPOINTS 01280823
IVTNUM = 2 01290823
AVD = DASIN(1.0D0) 01300823
IF (AVD - 0.1570796326D+01) 20020, 10020, 40020 01310823
40020 IF (AVD - 0.1570796328D+01) 10020, 10020, 20020 01320823
10020 IVPASS = IVPASS + 1 01330823
WRITE (NUVI, 80002) IVTNUM 01340823
GO TO 0021 01350823
20020 IVFAIL = IVFAIL + 1 01360823
DVCORR = 1.5707963267948966192D+00 01370823
WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 01380823
0021 CONTINUE 01390823
CT003* TEST 3 THE VALUE -DSQRT(0.5D0) 01400823
IVTNUM = 3 01410823
BVD = -(DSQRT(2.0D0) / 2.0D0) 01420823
AVD = DASIN(BVD) 01430823
IF (AVD + 0.7853981638D+00) 20030, 10030, 40030 01440823
40030 IF (AVD + 0.7853981630D+00) 10030, 10030, 20030 01450823
10030 IVPASS = IVPASS + 1 01460823
WRITE (NUVI, 80002) IVTNUM 01470823
GO TO 0031 01480823
20030 IVFAIL = IVFAIL + 1 01490823
DVCORR = -0.78539816339744830962D+00 01500823
WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 01510823
0031 CONTINUE 01520823
CT004* TEST 4 THE VALUE 0.5D0 01530823
IVTNUM = 4 01540823
AVD = DASIN(1.0D0 / 2.0D0) 01550823
IF (AVD - 0.5235987753D+00) 20040, 10040, 40040 01560823
40040 IF (AVD - 0.5235987759D+00) 10040, 10040, 20040 01570823
10040 IVPASS = IVPASS + 1 01580823
WRITE (NUVI, 80002) IVTNUM 01590823
GO TO 0041 01600823
20040 IVFAIL = IVFAIL + 1 01610823
DVCORR = 0.52359877559829887308D+00 01620823
WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 01630823
0041 CONTINUE 01640823
CT005* TEST 5 AN ARGUMENT OF LOW MAGNITUDE 01650823
IVTNUM = 5 01660823
AVD = DASIN(-1.0D-13) 01670823
IF (AVD + 0.1000000001D-12) 20050, 10050, 40050 01680823
40050 IF (AVD + 0.9999999995D-13) 10050, 10050, 20050 01690823
10050 IVPASS = IVPASS + 1 01700823
WRITE (NUVI, 80002) IVTNUM 01710823
GO TO 0051 01720823
20050 IVFAIL = IVFAIL + 1 01730823
DVCORR = -1.0000000000000000000D-13 01740823
WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 01750823
0051 CONTINUE 01760823
C***** 01770823
WRITE(NUVI,19407) 01780823
19407 FORMAT("0",8X,"TEST OF DACOS" ) 01790823
C***** 01800823
CT006* TEST 6 -1.0D0 FOR PRINCIPAL VALUE AT ENDPOINTS 01810823
IVTNUM = 6 01820823
BVD = -1.0D0 01830823
AVD = DACOS(BVD) 01840823
IF (AVD - 0.3141592652D+01) 20060, 10060, 40060 01850823
40060 IF (AVD - 0.3141592655D+01) 10060, 10060, 20060 01860823
10060 IVPASS = IVPASS + 1 01870823
WRITE (NUVI, 80002) IVTNUM 01880823
GO TO 0061 01890823
20060 IVFAIL = IVFAIL + 1 01900823
DVCORR = 3.1415926535897932384D+00 01910823
WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 01920823
0061 CONTINUE 01930823
CT007* TEST 7 +1.0D0 TO TEST PRINCIPAL VALUE AT ENDPOINTS 01940823
IVTNUM = 7 01950823
AVD = DACOS(1.0D0) 01960823
IF (AVD + 0.5000000000D-09) 20070, 10070, 40070 01970823
40070 IF (AVD - 0.5000000000D-09) 10070, 10070, 20070 01980823
10070 IVPASS = IVPASS + 1 01990823
WRITE (NUVI, 80002) IVTNUM 02000823
GO TO 0071 02010823
20070 IVFAIL = IVFAIL + 1 02020823
DVCORR = 0.00000000000000000000D+00 02030823
WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 02040823
0071 CONTINUE 02050823
CT008* TEST 8 THE VALUE -DSQRT(0.5D0) 02060823
IVTNUM = 8 02070823
BVD = -(DSQRT(2.0D0) / 2.0D0) 02080823
AVD = DACOS(BVD) 02090823
IF (AVD - 0.2356194489D+01) 20080, 10080, 40080 02100823
40080 IF (AVD - 0.2356194492D+01) 10080, 10080, 20080 02110823
10080 IVPASS = IVPASS + 1 02120823
WRITE (NUVI, 80002) IVTNUM 02130823
GO TO 0081 02140823
20080 IVFAIL = IVFAIL + 1 02150823
DVCORR = 2.3561944901923449288D+00 02160823
WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 02170823
0081 CONTINUE 02180823
CT009* TEST 9 THE VALUE 0.5D0 02190823
IVTNUM = 9 02200823
AVD = DACOS(1.0D0 / 2.0D0) 02210823
IF (AVD - 0.1047197550D+01) 20090, 10090, 40090 02220823
40090 IF (AVD - 0.1047197552D+01) 10090, 10090, 20090 02230823
10090 IVPASS = IVPASS + 1 02240823
WRITE (NUVI, 80002) IVTNUM 02250823
GO TO 0091 02260823
20090 IVFAIL = IVFAIL + 1 02270823
DVCORR = 1.0471975511965977461D+00 02280823
WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 02290823
0091 CONTINUE 02300823
CT010* TEST 10 AN ARGUMENT OF LOW MAGNITUDE 02310823
IVTNUM = 10 02320823
AVD = DACOS(-1.0D-33) 02330823
IF (AVD - 0.1570796326D+01) 20100, 10100, 40100 02340823
40100 IF (AVD - 0.1570796328D+01) 10100, 10100, 20100 02350823
10100 IVPASS = IVPASS + 1 02360823
WRITE (NUVI, 80002) IVTNUM 02370823
GO TO 0101 02380823
20100 IVFAIL = IVFAIL + 1 02390823
DVCORR = 1.5707963267948966192D+00 02400823
WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 02410823
0101 CONTINUE 02420823
CT011* TEST 11 COMPARISON OF DASIN AND DACOS FOR RIGHT RELATIONSHIP 02430823
IVTNUM = 11 02440823
BVD = DASIN(DSQRT(3.0D0) / 3.0D0) 02450823
CVD = DACOS(DSQRT(3.0D0) / 3.0D0) 02460823
AVD = (BVD + CVD) * 2.0D0 02470823
IF (AVD - 0.3141592652D+01) 20110, 10110, 40110 02480823
40110 IF (AVD - 0.3141592655D+01) 10110, 10110, 20110 02490823
10110 IVPASS = IVPASS + 1 02500823
WRITE (NUVI, 80002) IVTNUM 02510823
GO TO 0111 02520823
20110 IVFAIL = IVFAIL + 1 02530823
DVCORR = 3.1415926535897932384D+00 02540823
WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 02550823
0111 CONTINUE 02560823
CT012* TEST 12 COMPARISON OF DASIN AND DACOS TO TEST RELATIONSHIP 02570823
IVTNUM = 12 02580823
AVD = (DASIN(+0.25D0) + DACOS(+0.25D0)) * 2.0D0 02590823
IF (AVD - 0.3141592652D+01) 20120, 10120, 40120 02600823
40120 IF (AVD - 0.3141592655D+01) 10120, 10120, 20120 02610823
10120 IVPASS = IVPASS + 1 02620823
WRITE (NUVI, 80002) IVTNUM 02630823
GO TO 0121 02640823
20120 IVFAIL = IVFAIL + 1 02650823
DVCORR = 3.1415926535897932384D+00 02660823
WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 02670823
0121 CONTINUE 02680823
C***** 02690823
CBB** ********************** BBCSUM0 **********************************02700823
C**** WRITE OUT TEST SUMMARY 02710823
C**** 02720823
IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 02730823
WRITE (I02, 90004) 02740823
WRITE (I02, 90014) 02750823
WRITE (I02, 90004) 02760823
WRITE (I02, 90020) IVPASS 02770823
WRITE (I02, 90022) IVFAIL 02780823
WRITE (I02, 90024) IVDELE 02790823
WRITE (I02, 90026) IVINSP 02800823
WRITE (I02, 90028) IVTOTN, IVTOTL 02810823
CBE** ********************** BBCSUM0 **********************************02820823
CBB** ********************** BBCFOOT0 **********************************02830823
C**** WRITE OUT REPORT FOOTINGS 02840823
C**** 02850823
WRITE (I02,90016) ZPROG, ZPROG 02860823
WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 02870823
WRITE (I02,90019) 02880823
CBE** ********************** BBCFOOT0 **********************************02890823
CBB** ********************** BBCFMT0A **********************************02900823
C**** FORMATS FOR TEST DETAIL LINES 02910823
C**** 02920823
80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 02930823
80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 02940823
80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 02950823
80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 02960823
80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 02970823
1I6,/," ",15X,"CORRECT= " ,I6) 02980823
80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02990823
1E12.5,/," ",16X,"CORRECT= " ,E12.5) 03000823
80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 03010823
1A21,/," ",16X,"CORRECT= " ,A21) 03020823
80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 03030823
80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 03040823
80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 03050823
80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 03060823
80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 03070823
80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 03080823
80050 FORMAT (" ",48X,A31) 03090823
CBE** ********************** BBCFMT0A **********************************03100823
CBB** ********************** BBCFMAT1 **********************************03110823
C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 03120823
C**** 03130823
80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 03140823
1D17.10,/," ",16X,"CORRECT= " ,D17.10) 03150823
80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 03160823
80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 03170823
80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 03180823
80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 03190823
80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 03200823
80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 03210823
80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 03220823
1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 03230823
2"(",F12.5,", ",F12.5,")") 03240823
CBE** ********************** BBCFMAT1 **********************************03250823
CBB** ********************** BBCFMT0B **********************************03260823
C**** FORMAT STATEMENTS FOR PAGE HEADERS 03270823
C**** 03280823
90002 FORMAT ("1") 03290823
90004 FORMAT (" ") 03300823
90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )03310823
90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 03320823
90008 FORMAT (" ",21X,A13,A17) 03330823
90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 03340823
90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 03350823
90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 03360823
1 7X,"REMARKS",24X) 03370823
90014 FORMAT (" ","----------------------------------------------" , 03380823
1 "---------------------------------" ) 03390823
90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 03400823
C**** 03410823
C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 03420823
C**** 03430823
90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 03440823
90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 03450823
1 A13) 03460823
90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 03470823
C**** 03480823
C**** FORMAT STATEMENTS FOR RUN SUMMARY 03490823
C**** 03500823
90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 03510823
90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 03520823
90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 03530823
90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 03540823
90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 03550823
CBE** ********************** BBCFMT0B **********************************03560823
C***** 03570823
C***** END OF TEST SEGMENT 194 03580823
STOP 03590823
END 03600823