blob: 7ef344e6fd62d1726413aa928edf9b4939db2835 [file] [log] [blame]
PROGRAM FM808
C***********************************************************************00010808
C***** FORTRAN 77 00020808
C***** FM808 YDBLE - (169) 00030808
C***** 00040808
C***********************************************************************00050808
C***** GENERAL PURPOSE ANS REF 00060808
C***** TEST INTRINSIC FUNCTION DBLE (EXPRESS S.P. ARGUMENT 15.3 00070808
C***** IN DOUBLE PRECISION FORM ) (TABLE 5)00080808
C***** 00090808
CBB** ********************** BBCCOMNT **********************************00100808
C**** 00110808
C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00120808
C**** VERSION 2.1 00130808
C**** 00140808
C**** 00150808
C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00160808
C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00170808
C**** SOFTWARE STANDARDS VALIDATION GROUP 00180808
C**** BUILDING 225 RM A266 00190808
C**** GAITHERSBURG, MD 20899 00200808
C**** 00210808
C**** 00220808
C**** 00230808
CBE** ********************** BBCCOMNT **********************************00240808
C***** 00250808
C***** S P E C I F I C A T I O N S SEGMENT 169 00260808
DOUBLE PRECISION DVAVD, DVBVD, DVCORR, DVAVD1 00270808
C***** 00280808
CBB** ********************** BBCINITA **********************************00290808
C**** SPECIFICATION STATEMENTS 00300808
C**** 00310808
CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00320808
1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00330808
CBE** ********************** BBCINITA **********************************00340808
CBB** ********************** BBCINITB **********************************00350808
C**** INITIALIZE SECTION 00360808
DATA ZVERS, ZVERSD, ZDATE 00370808
1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00380808
DATA ZCOMPL, ZNAME, ZTAPE 00390808
1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00400808
DATA ZPROJ, ZTAPED, ZPROG 00410808
1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00420808
DATA REMRKS /' '/ 00430808
C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00440808
C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00450808
C**** 00460808
CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00470808
CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00480808
CZ03 ZPROG = 'PROGRAM NAME' 00490808
CZ04 ZDATE = 'DATE OF TEST' 00500808
CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00510808
CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00520808
CZ07 ZNAME = 'NAME OF USER' 00530808
CZ08 ZTAPE = 'TAPE OWNER/ID' 00540808
CZ09 ZTAPED = 'DATE TAPE COPIED' 00550808
C 00560808
IVPASS = 0 00570808
IVFAIL = 0 00580808
IVDELE = 0 00590808
IVINSP = 0 00600808
IVTOTL = 0 00610808
IVTOTN = 0 00620808
ICZERO = 0 00630808
C 00640808
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00650808
I01 = 05 00660808
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00670808
I02 = 06 00680808
C 00690808
CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00700808
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00710808
CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00720808
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00730808
C 00740808
CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00750808
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00760808
CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00770808
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00780808
C 00790808
CBE** ********************** BBCINITB **********************************00800808
NUVI = I02 00810808
IVTOTL = 8 00820808
ZPROG = 'FM808' 00830808
CBB** ********************** BBCHED0A **********************************00840808
C**** 00850808
C**** WRITE REPORT TITLE 00860808
C**** 00870808
WRITE (I02, 90002) 00880808
WRITE (I02, 90006) 00890808
WRITE (I02, 90007) 00900808
WRITE (I02, 90008) ZVERS, ZVERSD 00910808
WRITE (I02, 90009) ZPROG, ZPROG 00920808
WRITE (I02, 90010) ZDATE, ZCOMPL 00930808
CBE** ********************** BBCHED0A **********************************00940808
C***** 00950808
WRITE (NUVI,16901) 00960808
16901 FORMAT(" ",//1X,"YDBLE - (169) INTRINSIC FUNCTION--" // 00970808
1 16X,"DBLE (TYPE CONVERSION)" // 2X, 00980808
2 "ANS REF. - 15.3" ) 00990808
CBB** ********************** BBCHED0B **********************************01000808
C**** WRITE DETAIL REPORT HEADERS 01010808
C**** 01020808
WRITE (I02,90004) 01030808
WRITE (I02,90004) 01040808
WRITE (I02,90013) 01050808
WRITE (I02,90014) 01060808
WRITE (I02,90015) IVTOTL 01070808
CBE** ********************** BBCHED0B **********************************01080808
C***** 01090808
CT001* TEST 1 THE VALUE ZERO 01100808
IVTNUM = 1 01110808
RVAVS = 0.0 01120808
DVAVD = DBLE(RVAVS) 01130808
IF (DVAVD + 5.0D-5) 20010, 10010, 40010 01140808
40010 IF (DVAVD - 5.0D-5) 10010, 10010, 20010 01150808
10010 IVPASS = IVPASS + 1 01160808
WRITE (NUVI, 80002) IVTNUM 01170808
GO TO 0011 01180808
20010 IVFAIL = IVFAIL + 1 01190808
DVCORR = 0.0D0 01200808
WRITE (NUVI, 80031) IVTNUM, DVAVD, DVCORR 01210808
0011 CONTINUE 01220808
CT002* TEST 2 A D.P. CONSTANT WITH 6 SIGNIFICANT DIGITS 01230808
IVTNUM = 2 01240808
RVAVS = 0.015625 01250808
DVAVD = DBLE(RVAVS) 01260808
IF (DVAVD - 1.5624D-2) 20020, 10020, 40020 01270808
40020 IF (DVAVD - 1.5626D-2) 10020, 10020, 20020 01280808
10020 IVPASS = IVPASS + 1 01290808
WRITE (NUVI, 80002) IVTNUM 01300808
GO TO 0021 01310808
20020 IVFAIL = IVFAIL + 1 01320808
DVCORR = 1.5625D-2 01330808
WRITE (NUVI, 80031) IVTNUM, DVAVD, DVCORR 01340808
0021 CONTINUE 01350808
CT003* TEST 3 A NEGATIVE INTEGRAL VALUE 01360808
IVTNUM = 3 01370808
RVAVS = -321.0 01380808
DVAVD = DBLE(RVAVS) 01390808
IF (DVAVD + 3.2102D2) 20030, 10030, 40030 01400808
40030 IF (DVAVD + 3.2098D2) 10030, 10030, 20030 01410808
10030 IVPASS = IVPASS + 1 01420808
WRITE (NUVI, 80002) IVTNUM 01430808
GO TO 0031 01440808
20030 IVFAIL = IVFAIL + 1 01450808
DVCORR = -3.210D2 01460808
WRITE (NUVI, 80031) IVTNUM, DVAVD, DVCORR 01470808
0031 CONTINUE 01480808
CT004* TEST 4 A NEGATIVE D.P. CONSTANT WITH 6 SIGNIFICANT DIGITS 01490808
IVTNUM = 4 01500808
RVAVS = -0.015625 01510808
DVAVD = DBLE(RVAVS) 01520808
IF (DVAVD + 1.5626D-2) 20040, 10040, 40040 01530808
40040 IF (DVAVD + 1.5624D-2) 10040, 10040, 20040 01540808
10040 IVPASS = IVPASS + 1 01550808
WRITE (NUVI, 80002) IVTNUM 01560808
GO TO 0041 01570808
20040 IVFAIL = IVFAIL + 1 01580808
DVCORR = -0.015625D0 01590808
WRITE (NUVI, 80031) IVTNUM, DVAVD, DVCORR 01600808
0041 CONTINUE 01610808
CT005* TEST 5 THE VALUE ZERO PRECEDED BY A MINUS SIGN 01620808
IVTNUM = 5 01630808
RVAVS = 0.0 01640808
DVAVD = DBLE(-RVAVS) 01650808
IF (DVAVD + 5.0D-5) 20050, 10050, 40050 01660808
40050 IF (DVAVD - 5.0D-5) 10050, 10050, 20050 01670808
10050 IVPASS = IVPASS + 1 01680808
WRITE (NUVI, 80002) IVTNUM 01690808
GO TO 0051 01700808
20050 IVFAIL = IVFAIL + 1 01710808
DVCORR = -0.0D0 01720808
WRITE (NUVI, 80031) IVTNUM, DVAVD, DVCORR 01730808
0051 CONTINUE 01740808
CT006* TEST 6 A POSITIVE INTEGRAL VALUE 01750808
IVTNUM = 6 01760808
RVAVS = 321.0 01770808
DVAVD = DBLE(RVAVS) 01780808
IF (DVAVD - 3.2098D2) 20060, 10060, 40060 01790808
40060 IF (DVAVD - 3.2102D2) 10060, 10060, 20060 01800808
10060 IVPASS = IVPASS + 1 01810808
WRITE (NUVI, 80002) IVTNUM 01820808
GO TO 0061 01830808
20060 IVFAIL = IVFAIL + 1 01840808
DVCORR = 3.21D2 01850808
WRITE (NUVI, 80031) IVTNUM, DVAVD, DVCORR 01860808
0061 CONTINUE 01870808
CT007* TEST 7 AN ARITHMETIC EXPRESSION IS USED AS ARGUMENT 01880808
IVTNUM = 7 01890808
RVAVS = 6.25 01900808
RVBVS = 2.5 01910808
DVAVD = DBLE(RVBVS ** 2) 01920808
IF (DVAVD - 6.2496D0) 20070, 10070, 40070 01930808
40070 IF (DVAVD - 6.2504D0) 10070, 10070, 20070 01940808
10070 IVPASS = IVPASS + 1 01950808
WRITE (NUVI, 80002) IVTNUM 01960808
GO TO 0071 01970808
20070 IVFAIL = IVFAIL + 1 01980808
DVCORR = 6.25D0 01990808
WRITE (NUVI, 80031) IVTNUM, DVAVD, DVCORR 02000808
0071 CONTINUE 02010808
CT008* TEST 8 COMPARE AUTOMATIC TYPE CONVERSION TO EXPLICIT 02020808
IVTNUM = 8 02030808
RVBVS = 2.5 02040808
DVBVD = RVBVS ** 3 02050808
DVAVD = DBLE(RVBVS ** 3) 02060808
IF (DVAVD - 1.5624D1) 20080, 10080, 40080 02070808
40080 IF (DVAVD - 1.5626D1) 10080, 10080, 20080 02080808
10080 IVPASS = IVPASS + 1 02090808
WRITE (NUVI, 80002) IVTNUM 02100808
GO TO 0081 02110808
20080 IVFAIL = IVFAIL + 1 02120808
DVCORR = 1.5625D1 02130808
WRITE (NUVI, 80031) IVTNUM, DVAVD, DVCORR 02140808
0081 CONTINUE 02150808
CBB** ********************** BBCSUM0 **********************************02160808
C**** WRITE OUT TEST SUMMARY 02170808
C**** 02180808
IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 02190808
WRITE (I02, 90004) 02200808
WRITE (I02, 90014) 02210808
WRITE (I02, 90004) 02220808
WRITE (I02, 90020) IVPASS 02230808
WRITE (I02, 90022) IVFAIL 02240808
WRITE (I02, 90024) IVDELE 02250808
WRITE (I02, 90026) IVINSP 02260808
WRITE (I02, 90028) IVTOTN, IVTOTL 02270808
CBE** ********************** BBCSUM0 **********************************02280808
CBB** ********************** BBCFOOT0 **********************************02290808
C**** WRITE OUT REPORT FOOTINGS 02300808
C**** 02310808
WRITE (I02,90016) ZPROG, ZPROG 02320808
WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 02330808
WRITE (I02,90019) 02340808
CBE** ********************** BBCFOOT0 **********************************02350808
CBB** ********************** BBCFMT0A **********************************02360808
C**** FORMATS FOR TEST DETAIL LINES 02370808
C**** 02380808
80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 02390808
80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 02400808
80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 02410808
80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 02420808
80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 02430808
1I6,/," ",15X,"CORRECT= " ,I6) 02440808
80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02450808
1E12.5,/," ",16X,"CORRECT= " ,E12.5) 02460808
80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02470808
1A21,/," ",16X,"CORRECT= " ,A21) 02480808
80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 02490808
80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 02500808
80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 02510808
80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 02520808
80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 02530808
80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 02540808
80050 FORMAT (" ",48X,A31) 02550808
CBE** ********************** BBCFMT0A **********************************02560808
CBB** ********************** BBCFMAT1 **********************************02570808
C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 02580808
C**** 02590808
80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02600808
1D17.10,/," ",16X,"CORRECT= " ,D17.10) 02610808
80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 02620808
80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 02630808
80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 02640808
80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 02650808
80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 02660808
80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 02670808
80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02680808
1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 02690808
2"(",F12.5,", ",F12.5,")") 02700808
CBE** ********************** BBCFMAT1 **********************************02710808
CBB** ********************** BBCFMT0B **********************************02720808
C**** FORMAT STATEMENTS FOR PAGE HEADERS 02730808
C**** 02740808
90002 FORMAT ("1") 02750808
90004 FORMAT (" ") 02760808
90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )02770808
90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 02780808
90008 FORMAT (" ",21X,A13,A17) 02790808
90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 02800808
90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 02810808
90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 02820808
1 7X,"REMARKS",24X) 02830808
90014 FORMAT (" ","----------------------------------------------" , 02840808
1 "---------------------------------" ) 02850808
90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 02860808
C**** 02870808
C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 02880808
C**** 02890808
90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 02900808
90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 02910808
1 A13) 02920808
90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 02930808
C**** 02940808
C**** FORMAT STATEMENTS FOR RUN SUMMARY 02950808
C**** 02960808
90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 02970808
90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 02980808
90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 02990808
90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 03000808
90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 03010808
CBE** ********************** BBCFMT0B **********************************03020808
C***** 03030808
C***** END OF TEST SEGMENT 169 03040808
STOP 03050808
END 03060808
03070808