PROGRAM FM834 C***********************************************************************00010834 C***** FORTRAN 77 00020834 C***** FM834 00030834 C***** YGEN7 - (212) 00040834 C***** 00050834 C***********************************************************************00060834 C***** GENERAL PURPOSE ANS REF 00070834 C***** TEST GENERIC FUNCTIONS 15.3 00080834 C***** USES GENERIC FUNCTIONS AS ARGUMENTS TO TABLE 5 00090834 C***** OTHER GENERIC FUNCTIONS 00100834 C***** 00110834 CBB** ********************** BBCCOMNT **********************************00120834 C**** 00130834 C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00140834 C**** VERSION 2.1 00150834 C**** 00160834 C**** 00170834 C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00180834 C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00190834 C**** SOFTWARE STANDARDS VALIDATION GROUP 00200834 C**** BUILDING 225 RM A266 00210834 C**** GAITHERSBURG, MD 20899 00220834 C**** 00230834 C**** 00240834 C**** 00250834 CBE** ********************** BBCCOMNT **********************************00260834 C***** 00270834 C***** S P E C I F I C A T I O N S SEGMENT 212 00280834 DOUBLE PRECISION AVD, DVCORR 00290834 COMPLEX AVC, ZVCORR 00300834 REAL R2E(2) 00310834 EQUIVALENCE (AVC, R2E) 00320834 C***** 00330834 CBB** ********************** BBCINITA **********************************00340834 C**** SPECIFICATION STATEMENTS 00350834 C**** 00360834 CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00370834 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00380834 CBE** ********************** BBCINITA **********************************00390834 CBB** ********************** BBCINITB **********************************00400834 C**** INITIALIZE SECTION 00410834 DATA ZVERS, ZVERSD, ZDATE 00420834 1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00430834 DATA ZCOMPL, ZNAME, ZTAPE 00440834 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00450834 DATA ZPROJ, ZTAPED, ZPROG 00460834 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00470834 DATA REMRKS /' '/ 00480834 C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00490834 C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00500834 C**** 00510834 CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00520834 CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00530834 CZ03 ZPROG = 'PROGRAM NAME' 00540834 CZ04 ZDATE = 'DATE OF TEST' 00550834 CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00560834 CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00570834 CZ07 ZNAME = 'NAME OF USER' 00580834 CZ08 ZTAPE = 'TAPE OWNER/ID' 00590834 CZ09 ZTAPED = 'DATE TAPE COPIED' 00600834 C 00610834 IVPASS = 0 00620834 IVFAIL = 0 00630834 IVDELE = 0 00640834 IVINSP = 0 00650834 IVTOTL = 0 00660834 IVTOTN = 0 00670834 ICZERO = 0 00680834 C 00690834 C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00700834 I01 = 05 00710834 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00720834 I02 = 06 00730834 C 00740834 CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00750834 C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00760834 CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00770834 C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00780834 C 00790834 CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00800834 C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00810834 CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00820834 C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00830834 C 00840834 CBE** ********************** BBCINITB **********************************00850834 NUVI = I02 00860834 IVTOTL = 7 00870834 ZPROG = 'FM834' 00880834 CBB** ********************** BBCHED0A **********************************00890834 C**** 00900834 C**** WRITE REPORT TITLE 00910834 C**** 00920834 WRITE (I02, 90002) 00930834 WRITE (I02, 90006) 00940834 WRITE (I02, 90007) 00950834 WRITE (I02, 90008) ZVERS, ZVERSD 00960834 WRITE (I02, 90009) ZPROG, ZPROG 00970834 WRITE (I02, 90010) ZDATE, ZCOMPL 00980834 CBE** ********************** BBCHED0A **********************************00990834 C***** 01000834 C***** HEADER FOR SEGMENT 212 01010834 WRITE(NUVI,21200) 01020834 21200 FORMAT( " ", / " YGEN7 - (212) GENERIC FUNCTIONS --" // 01030834 1 " AS ARGUMENTS TO OTHER FUNCTIONS" // 01040834 2 " ANS REF. - 15.3" ) 01050834 CBB** ********************** BBCHED0B **********************************01060834 C**** WRITE DETAIL REPORT HEADERS 01070834 C**** 01080834 WRITE (I02,90004) 01090834 WRITE (I02,90004) 01100834 WRITE (I02,90013) 01110834 WRITE (I02,90014) 01120834 WRITE (I02,90015) IVTOTL 01130834 CBE** ********************** BBCHED0B **********************************01140834 C***** 01150834 CT001* TEST 1 TEST OF ABS AND MIN WITH INTEGERS 01160834 C***** 01170834 IVTNUM = 1 01180834 LVI = 2 - ABS( MIN( -3, -8)) 01190834 IF (LVI + 6) 20010, 10010, 20010 01200834 10010 IVPASS = IVPASS + 1 01210834 WRITE (NUVI, 80002) IVTNUM 01220834 GO TO 0011 01230834 20010 IVFAIL = IVFAIL + 1 01240834 IVCORR = -6 01250834 WRITE (NUVI, 80010) IVTNUM, LVI, IVCORR 01260834 0011 CONTINUE 01270834 CT002* TEST 2 TEST OF MOD AND SIGN WITH INTEGERS 01280834 IVTNUM = 2 01290834 LVI = 25 * MOD( SIGN( 14, -2), 3) 01300834 IF (LVI + 50) 20020, 10020, 20020 01310834 10020 IVPASS = IVPASS + 1 01320834 WRITE (NUVI, 80002) IVTNUM 01330834 GO TO 0021 01340834 20020 IVFAIL = IVFAIL + 1 01350834 IVCORR = -50 01360834 WRITE (NUVI, 80010) IVTNUM, LVI, IVCORR 01370834 0021 CONTINUE 01380834 CT003* TEST 3 TEST OF COS AND SQRT WITH REALS 01390834 IVTNUM = 3 01400834 AVS = 2.0 * COS( 1.25 + SQRT( 3.50)) 01410834 IF (AVS + 0.19997E+01) 20030, 10030, 40030 01420834 40030 IF (AVS + 0.19994E+01) 10030, 10030, 20030 01430834 10030 IVPASS = IVPASS + 1 01440834 WRITE (NUVI, 80002) IVTNUM 01450834 GO TO 0031 01460834 20030 IVFAIL = IVFAIL + 1 01470834 RVCORR = -1.9995689 01480834 WRITE (NUVI, 80012) IVTNUM, AVS, RVCORR 01490834 0031 CONTINUE 01500834 CT004* TEST 4 TEST OF MAX, LOG AND LOG10 WITH REALS 01510834 IVTNUM = 4 01520834 AVS = MAX( LOG( 274.125), 4.5 * LOG10( 121.75)) 01530834 IF (AVS - 0.93841E+01) 20040, 10040, 40040 01540834 40040 IF (AVS - 0.93851E+01) 10040, 10040, 20040 01550834 10040 IVPASS = IVPASS + 1 01560834 WRITE (NUVI, 80002) IVTNUM 01570834 GO TO 0041 01580834 20040 IVFAIL = IVFAIL + 1 01590834 RVCORR = 9.3846103 01600834 WRITE (NUVI, 80012) IVTNUM, AVS, RVCORR 01610834 0041 CONTINUE 01620834 CT005* TEST 5 TEST OF EXP AND MOD WITH DOUBLE PREC 01630834 IVTNUM = 5 01640834 AVD = 1.0D0 - EXP(5.25D0 + MOD(76.0D0, 2.5D0)) 01650834 IF (AVD + 0.5170128250D+03) 20050, 10050, 40050 01660834 40050 IF (AVD + 0.5170128244D+03) 10050, 10050, 20050 01670834 10050 IVPASS = IVPASS + 1 01680834 WRITE (NUVI, 80002) IVTNUM 01690834 GO TO 0051 01700834 20050 IVFAIL = IVFAIL + 1 01710834 DVCORR = -517.01282466834D0 01720834 WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 01730834 0051 CONTINUE 01740834 CT006* TEST 6 TEST OF SINH, ABS, TAN AND ATAN 01750834 IVTNUM = 6 01760834 AVD = SINH( ABS( TAN( 3.25D0) - ATAN( 1.1D-1)) - 0.01D0) 01770834 IF (AVD + 0.9274631705D-02) 20060, 10060, 40060 01780834 40060 IF (AVD + 0.9274631695D-02) 10060, 10060, 20060 01790834 10060 IVPASS = IVPASS + 1 01800834 WRITE (NUVI, 80002) IVTNUM 01810834 GO TO 0061 01820834 20060 IVFAIL = IVFAIL + 1 01830834 DVCORR = -0.92746316996764D-2 01840834 WRITE (NUVI, 80031) IVTNUM, AVD, DVCORR 01850834 0061 CONTINUE 01860834 CT007* TEST 7 TEST OF EXP WITH COMPLEX AND COS WITH REAL 01870834 IVTNUM = 7 01880834 AVC = EXP( CMPLX(3.5, COS(0.925))) * CMPLX(1.0, 1.50) 01890834 IF (R2E(1) + 0.82578E+00) 20070, 40072, 40071 01900834 40071 IF (R2E(1) + 0.82569E+00) 40072, 40072, 20070 01910834 40072 IF (R2E(2) - 0.59691E+02) 20070, 10070, 40070 01920834 40070 IF (R2E(2) - 0.59697E+02) 10070, 10070, 20070 01930834 10070 IVPASS = IVPASS + 1 01940834 WRITE (NUVI, 80002) IVTNUM 01950834 GO TO 0071 01960834 20070 IVFAIL = IVFAIL + 1 01970834 ZVCORR = (-0.8257397, 59.6940191) 01980834 WRITE (NUVI, 80045) IVTNUM, AVC, ZVCORR 01990834 0071 CONTINUE 02000834 CBB** ********************** BBCSUM0 **********************************02010834 C**** WRITE OUT TEST SUMMARY 02020834 C**** 02030834 IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 02040834 WRITE (I02, 90004) 02050834 WRITE (I02, 90014) 02060834 WRITE (I02, 90004) 02070834 WRITE (I02, 90020) IVPASS 02080834 WRITE (I02, 90022) IVFAIL 02090834 WRITE (I02, 90024) IVDELE 02100834 WRITE (I02, 90026) IVINSP 02110834 WRITE (I02, 90028) IVTOTN, IVTOTL 02120834 CBE** ********************** BBCSUM0 **********************************02130834 CBB** ********************** BBCFOOT0 **********************************02140834 C**** WRITE OUT REPORT FOOTINGS 02150834 C**** 02160834 WRITE (I02,90016) ZPROG, ZPROG 02170834 WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 02180834 WRITE (I02,90019) 02190834 CBE** ********************** BBCFOOT0 **********************************02200834 CBB** ********************** BBCFMT0A **********************************02210834 C**** FORMATS FOR TEST DETAIL LINES 02220834 C**** 02230834 80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 02240834 80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 02250834 80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 02260834 80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 02270834 80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 02280834 1I6,/," ",15X,"CORRECT= " ,I6) 02290834 80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02300834 1E12.5,/," ",16X,"CORRECT= " ,E12.5) 02310834 80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02320834 1A21,/," ",16X,"CORRECT= " ,A21) 02330834 80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 02340834 80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 02350834 80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 02360834 80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 02370834 80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 02380834 80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 02390834 80050 FORMAT (" ",48X,A31) 02400834 CBE** ********************** BBCFMT0A **********************************02410834 CBB** ********************** BBCFMAT1 **********************************02420834 C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 02430834 C**** 02440834 80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02450834 1D17.10,/," ",16X,"CORRECT= " ,D17.10) 02460834 80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 02470834 80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 02480834 80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 02490834 80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 02500834 80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 02510834 80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 02520834 80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 02530834 1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 02540834 2"(",F12.5,", ",F12.5,")") 02550834 CBE** ********************** BBCFMAT1 **********************************02560834 CBB** ********************** BBCFMT0B **********************************02570834 C**** FORMAT STATEMENTS FOR PAGE HEADERS 02580834 C**** 02590834 90002 FORMAT ("1") 02600834 90004 FORMAT (" ") 02610834 90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )02620834 90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 02630834 90008 FORMAT (" ",21X,A13,A17) 02640834 90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 02650834 90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 02660834 90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 02670834 1 7X,"REMARKS",24X) 02680834 90014 FORMAT (" ","----------------------------------------------" , 02690834 1 "---------------------------------" ) 02700834 90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 02710834 C**** 02720834 C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 02730834 C**** 02740834 90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 02750834 90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 02760834 1 A13) 02770834 90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 02780834 C**** 02790834 C**** FORMAT STATEMENTS FOR RUN SUMMARY 02800834 C**** 02810834 90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 02820834 90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 02830834 90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 02840834 90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 02850834 90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 02860834 CBE** ********************** BBCFMT0B **********************************02870834 C***** 02880834 C***** END OF TEST SEGMENT 212 02890834 STOP 02900834 END 02910834