blob: fd535389e1bd9d7dd7b6d7c9bdb19aec55b5332d [file] [log] [blame]
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