blob: 62d3c74b2f85b4c0f47bc2e9a9f98db143594774 [file] [log] [blame]
PROGRAM FM362
C***********************************************************************00010362
C***** FORTRAN 77 00020362
C***** FM362 XMIN - (167) 00030362
C***** 00040362
C***********************************************************************00050362
C***** GENERAL PURPOSE SUBSET REF00060362
C***** TEST INTRINSIC FUNCTIONS AMIN0,AMIN1,MIN0,MIN1 15.3 00070362
C***** CHOOSING SMALLEST VALUE. (TABLE 5)00080362
C***** 00090362
CBB** ********************** BBCCOMNT **********************************00100362
C**** 00110362
C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00120362
C**** VERSION 2.1 00130362
C**** 00140362
C**** 00150362
C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00160362
C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00170362
C**** SOFTWARE STANDARDS VALIDATION GROUP 00180362
C**** BUILDING 225 RM A266 00190362
C**** GAITHERSBURG, MD 20899 00200362
C**** 00210362
C**** 00220362
C**** 00230362
CBE** ********************** BBCCOMNT **********************************00240362
CBB** ********************** BBCINITA **********************************00250362
C**** SPECIFICATION STATEMENTS 00260362
C**** 00270362
CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00280362
1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00290362
CBE** ********************** BBCINITA **********************************00300362
CBB** ********************** BBCINITB **********************************00310362
C**** INITIALIZE SECTION 00320362
DATA ZVERS, ZVERSD, ZDATE 00330362
1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00340362
DATA ZCOMPL, ZNAME, ZTAPE 00350362
1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00360362
DATA ZPROJ, ZTAPED, ZPROG 00370362
1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00380362
DATA REMRKS /' '/ 00390362
C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00400362
C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00410362
C**** 00420362
CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00430362
CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00440362
CZ03 ZPROG = 'PROGRAM NAME' 00450362
CZ04 ZDATE = 'DATE OF TEST' 00460362
CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00470362
CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00480362
CZ07 ZNAME = 'NAME OF USER' 00490362
CZ08 ZTAPE = 'TAPE OWNER/ID' 00500362
CZ09 ZTAPED = 'DATE TAPE COPIED' 00510362
C 00520362
IVPASS = 0 00530362
IVFAIL = 0 00540362
IVDELE = 0 00550362
IVINSP = 0 00560362
IVTOTL = 0 00570362
IVTOTN = 0 00580362
ICZERO = 0 00590362
C 00600362
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00610362
I01 = 05 00620362
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00630362
I02 = 06 00640362
C 00650362
CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00660362
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00670362
CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00680362
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00690362
C 00700362
CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00710362
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00720362
CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00730362
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00740362
C 00750362
CBE** ********************** BBCINITB **********************************00760362
NUVI = I02 00770362
IVTOTL = 47 00780362
ZPROG = 'FM362' 00790362
CBB** ********************** BBCHED0A **********************************00800362
C**** 00810362
C**** WRITE REPORT TITLE 00820362
C**** 00830362
WRITE (I02, 90002) 00840362
WRITE (I02, 90006) 00850362
WRITE (I02, 90007) 00860362
WRITE (I02, 90008) ZVERS, ZVERSD 00870362
WRITE (I02, 90009) ZPROG, ZPROG 00880362
WRITE (I02, 90010) ZDATE, ZCOMPL 00890362
CBE** ********************** BBCHED0A **********************************00900362
C***** 00910362
C***** HEADER FOR SEGMENT 167 00920362
WRITE (NUVI,16700) 00930362
16700 FORMAT (" ", // 2X,"XMIN - (167) INTRINSIC FUNCTIONS-- " //13X,00940362
1 "AMIN0, AMIN1, MIN0, MIN1" / 13X, 00950362
2 "(CHOOSING SMALLEST VALUE)" //2X, 00960362
3 "SUBSET REF. - 15.3" ) 00970362
CBB** ********************** BBCHED0B **********************************00980362
C**** WRITE DETAIL REPORT HEADERS 00990362
C**** 01000362
WRITE (I02,90004) 01010362
WRITE (I02,90004) 01020362
WRITE (I02,90013) 01030362
WRITE (I02,90014) 01040362
WRITE (I02,90015) IVTOTL 01050362
CBE** ********************** BBCHED0B **********************************01060362
C***** 01070362
C***** TEST OF AMIN0 01080362
C***** 01090362
WRITE(NUVI, 16702) 01100362
16702 FORMAT (/ 8X, "TEST OF AMIN0" ) 01110362
CT001* TEST 1 BOTH VALUES ZERO 01120362
IVTNUM = 1 01130362
IIBVI = 0 01140362
IIDVI = 0 01150362
RIAVS = AMIN0(IIBVI, IIDVI) 01160362
IF (RIAVS + 0.00005) 20010, 10010, 40010 01170362
40010 IF (RIAVS - 0.00005) 10010, 10010, 20010 01180362
10010 IVPASS = IVPASS + 1 01190362
WRITE (NUVI, 80002) IVTNUM 01200362
GO TO 0011 01210362
20010 IVFAIL = IVFAIL + 1 01220362
RVCORR = 0.0 01230362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 01240362
0011 CONTINUE 01250362
CT002* TEST 2 FIRST VALUE NON-ZERO, SECOND ZERO 01260362
IVTNUM = 2 01270362
IIBVI = 6 01280362
IIDVI = 0 01290362
RIAVS = AMIN0(IIBVI, IIDVI) 01300362
IF (RIAVS + 0.00005) 20020, 10020, 40020 01310362
40020 IF (RIAVS - 0.00005) 10020, 10020, 20020 01320362
10020 IVPASS = IVPASS + 1 01330362
WRITE (NUVI, 80002) IVTNUM 01340362
GO TO 0021 01350362
20020 IVFAIL = IVFAIL + 1 01360362
RVCORR = 0.0 01370362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 01380362
0021 CONTINUE 01390362
CT003* TEST 3 BOTH VALUES EQUAL 01400362
IVTNUM = 3 01410362
IIBVI = 7 01420362
IIDVI = 7 01430362
RIAVS = AMIN0(IIBVI, IIDVI) 01440362
IF (RIAVS - 6.9996) 20030, 10030, 40030 01450362
40030 IF (RIAVS - 7.0004) 10030, 10030, 20030 01460362
10030 IVPASS = IVPASS + 1 01470362
WRITE (NUVI, 80002) IVTNUM 01480362
GO TO 0031 01490362
20030 IVFAIL = IVFAIL + 1 01500362
RVCORR = 7.0 01510362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 01520362
0031 CONTINUE 01530362
CT004* TEST 4 VALUES NOT EQUAL 01540362
IVTNUM = 4 01550362
IIBVI = 7 01560362
IIDVI = 5 01570362
RIAVS = AMIN0(IIBVI, IIDVI) 01580362
IF (RIAVS - 4.9997) 20040, 10040, 40040 01590362
40040 IF (RIAVS - 5.0003) 10040, 10040, 20040 01600362
10040 IVPASS = IVPASS + 1 01610362
WRITE (NUVI, 80002) IVTNUM 01620362
GO TO 0041 01630362
20040 IVFAIL = IVFAIL + 1 01640362
RVCORR = 5.0 01650362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 01660362
0041 CONTINUE 01670362
CT005* TEST 5 FIRST VALUE NEGATIVE, SECOND ZERO 01680362
IVTNUM = 5 01690362
IIBVI = -6 01700362
IIDVI = 0 01710362
RIAVS = AMIN0(IIBVI, IIDVI) 01720362
IF (RIAVS + 6.0003) 20050, 10050, 40050 01730362
40050 IF (RIAVS + 5.9997) 10050, 10050, 20050 01740362
10050 IVPASS = IVPASS + 1 01750362
WRITE (NUVI, 80002) IVTNUM 01760362
GO TO 0051 01770362
20050 IVFAIL = IVFAIL + 1 01780362
RVCORR = -6.0 01790362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 01800362
0051 CONTINUE 01810362
CT006* TEST 6 BOTH VALUES EQUAL, BOTH NEGATIVE 01820362
IVTNUM = 6 01830362
IIBVI = -7 01840362
IIDVI = -7 01850362
RIAVS = AMIN0(IIBVI, IIDVI) 01860362
IF (RIAVS + 7.0004) 20060, 10060, 40060 01870362
40060 IF (RIAVS + 6.9996) 10060, 10060, 20060 01880362
10060 IVPASS = IVPASS + 1 01890362
WRITE (NUVI, 80002) IVTNUM 01900362
GO TO 0061 01910362
20060 IVFAIL = IVFAIL + 1 01920362
RVCORR = -7.0 01930362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 01940362
0061 CONTINUE 01950362
CT007* TEST 7 VALUES NOT EQUAL, BOTH NEGATIVE 01960362
IVTNUM = 7 01970362
IIBVI = -7 01980362
IIDVI = -5 01990362
RIAVS = AMIN0(IIBVI, IIDVI) 02000362
IF (RIAVS + 7.0004) 20070, 10070, 40070 02010362
40070 IF (RIAVS + 6.9996) 10070, 10070, 20070 02020362
10070 IVPASS = IVPASS + 1 02030362
WRITE (NUVI, 80002) IVTNUM 02040362
GO TO 0071 02050362
20070 IVFAIL = IVFAIL + 1 02060362
RVCORR = -7.0 02070362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 02080362
0071 CONTINUE 02090362
CT008* TEST 8 FIRST VALUE NON-ZERO, 2ND ZERO PRECEDED BY MINUS SIGN 02100362
IVTNUM = 8 02110362
IIDVI = 6 02120362
IIEVI = 0 02130362
RIAVS = AMIN0(IIDVI, -IIEVI) 02140362
IF (RIAVS + 0.00005) 20080, 10080, 40080 02150362
40080 IF (RIAVS - 0.00005) 10080, 10080, 20080 02160362
10080 IVPASS = IVPASS + 1 02170362
WRITE (NUVI, 80002) IVTNUM 02180362
GO TO 0081 02190362
20080 IVFAIL = IVFAIL + 1 02200362
RVCORR = 0.0 02210362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 02220362
0081 CONTINUE 02230362
CT009* TEST 9 3 ARGUMENTS 02240362
IVTNUM = 9 02250362
IIBVI = 0 02260362
IICVI = 9 02270362
IIDVI = 8 02280362
RIAVS = AMIN0(IIBVI, IICVI, IIDVI) 02290362
IF (RIAVS + 0.00005) 20090, 10090, 40090 02300362
40090 IF (RIAVS - 0.00005) 10090, 10090, 20090 02310362
10090 IVPASS = IVPASS + 1 02320362
WRITE (NUVI, 80002) IVTNUM 02330362
GO TO 0091 02340362
20090 IVFAIL = IVFAIL + 1 02350362
RVCORR = 0.0 02360362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 02370362
0091 CONTINUE 02380362
CT010* TEST 10 4 ARGUMENTS 02390362
IVTNUM = 10 02400362
IIBVI = 34 02410362
IICVI = 8 02420362
IIDVI = 4 02430362
RIAVS = AMIN0(IIDVI, IIBVI, IICVI, IIDVI) 02440362
IF (RIAVS - 3.9998) 20100, 10100, 40100 02450362
40100 IF (RIAVS - 4.0002) 10100, 10100, 20100 02460362
10100 IVPASS = IVPASS + 1 02470362
WRITE (NUVI, 80002) IVTNUM 02480362
GO TO 0101 02490362
20100 IVFAIL = IVFAIL + 1 02500362
RVCORR = 4.0 02510362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 02520362
0101 CONTINUE 02530362
CT011* TEST 11 5 ARGUMENTS 02540362
IVTNUM = 11 02550362
IIDVI = 4.0 02560362
IIEVI = 5.0 02570362
RIAVS = AMIN0(IIDVI, -IIDVI, -IIEVI, +IIDVI, IIEVI) 02580362
IF (RIAVS + 5.0003) 20110, 10110, 40110 02590362
40110 IF (RIAVS + 4.9997) 10110, 10110, 20110 02600362
10110 IVPASS = IVPASS + 1 02610362
WRITE (NUVI, 80002) IVTNUM 02620362
GO TO 0111 02630362
20110 IVFAIL = IVFAIL + 1 02640362
RVCORR = -5.0 02650362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 02660362
0111 CONTINUE 02670362
C***** 02680362
WRITE (NUVI, 90002) 02690362
WRITE (NUVI, 90013) 02700362
WRITE (NUVI, 90014) 02710362
C***** TEST OF AMIN1 02720362
C***** 02730362
WRITE(NUVI, 16704) 02740362
16704 FORMAT (/ 8X, "TEST OF AMIN1" ) 02750362
CT012* TEST 12 BOTH VALUES ZERO 02760362
IVTNUM = 12 02770362
RIBVS = 0.0 02780362
RIDVS = 0.0 02790362
RIAVS = AMIN1(RIBVS, RIDVS) 02800362
IF (RIAVS + 0.00005) 20120, 10120, 40120 02810362
40120 IF (RIAVS - 0.00005) 10120, 10120, 20120 02820362
10120 IVPASS = IVPASS + 1 02830362
WRITE (NUVI, 80002) IVTNUM 02840362
GO TO 0121 02850362
20120 IVFAIL = IVFAIL + 1 02860362
RVCORR = 0.0 02870362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 02880362
0121 CONTINUE 02890362
CT013* TEST 13 FIRST VALUE NON-ZERO, SECOND ZERO 02900362
IVTNUM = 13 02910362
RIBVS = 5.625 02920362
RIDVS = 0.0 02930362
RIAVS = AMIN1(RIBVS, RIDVS) 02940362
IF (RIAVS + 0.00005) 20130, 10130, 40130 02950362
40130 IF (RIAVS - 0.00005) 10130, 10130, 20130 02960362
10130 IVPASS = IVPASS + 1 02970362
WRITE (NUVI, 80002) IVTNUM 02980362
GO TO 0131 02990362
20130 IVFAIL = IVFAIL + 1 03000362
RVCORR = 0.0 03010362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 03020362
0131 CONTINUE 03030362
CT014* TEST 14 BOTH VALUES EQUAL 03040362
IVTNUM = 14 03050362
RIBVS = 6.5 03060362
RIDVS = 6.5 03070362
RIAVS = AMIN1(RIBVS, RIDVS) 03080362
IF (RIAVS - 6.4996) 20140, 10140, 40140 03090362
40140 IF (RIAVS - 6.5004) 10140, 10140, 20140 03100362
10140 IVPASS = IVPASS + 1 03110362
WRITE (NUVI, 80002) IVTNUM 03120362
GO TO 0141 03130362
20140 IVFAIL = IVFAIL + 1 03140362
RVCORR = 6.5 03150362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 03160362
0141 CONTINUE 03170362
CT015* TEST 15 VALUES NOT EQUAL 03180362
IVTNUM = 15 03190362
RIBVS = 7.125 03200362
RIDVS = 5.125 03210362
RIAVS = AMIN1(RIBVS, RIDVS) 03220362
IF (RIAVS - 5.1247) 20150, 10150, 40150 03230362
40150 IF (RIAVS - 5.1253) 10150, 10150, 20150 03240362
10150 IVPASS = IVPASS + 1 03250362
WRITE (NUVI, 80002) IVTNUM 03260362
GO TO 0151 03270362
20150 IVFAIL = IVFAIL + 1 03280362
RVCORR = 5.125 03290362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 03300362
0151 CONTINUE 03310362
CT016* TEST 16 FIRST VALUE NEGATIVE, SECOND ZERO 03320362
IVTNUM = 16 03330362
RIBVS = -5.625 03340362
RIDVS = 0.0 03350362
RIAVS = AMIN1(RIBVS, RIDVS) 03360362
IF (RIAVS + 5.6253) 20160, 10160, 40160 03370362
40160 IF (RIAVS + 5.6247) 10160, 10160, 20160 03380362
10160 IVPASS = IVPASS + 1 03390362
WRITE (NUVI, 80002) IVTNUM 03400362
GO TO 0161 03410362
20160 IVFAIL = IVFAIL + 1 03420362
RVCORR = -5.625 03430362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 03440362
0161 CONTINUE 03450362
CT017* TEST 17 BOTH VALUES EQUAL, BOTH NEGATIVE 03460362
IVTNUM = 17 03470362
RIBVS = -6.5 03480362
RIDVS = -6.5 03490362
RIAVS = AMIN1(RIBVS, RIDVS) 03500362
IF (RIAVS + 6.5004) 20170, 10170, 40170 03510362
40170 IF (RIAVS + 6.4996) 10170, 10170, 20170 03520362
10170 IVPASS = IVPASS + 1 03530362
WRITE (NUVI, 80002) IVTNUM 03540362
GO TO 0171 03550362
20170 IVFAIL = IVFAIL + 1 03560362
RVCORR = -6.5 03570362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 03580362
0171 CONTINUE 03590362
CT018* TEST 18 VALUES NOT EQUAL, BOTH NEGATIVE 03600362
IVTNUM = 18 03610362
RIBVS = -7.125 03620362
RIDVS = -5.125 03630362
RIAVS = AMIN1(RIBVS, RIDVS) 03640362
IF (RIAVS + 7.1254) 20180, 10180, 40180 03650362
40180 IF (RIAVS + 7.1246) 10180, 10180, 20180 03660362
10180 IVPASS = IVPASS + 1 03670362
WRITE (NUVI, 80002) IVTNUM 03680362
GO TO 0181 03690362
20180 IVFAIL = IVFAIL + 1 03700362
RVCORR = -7.125 03710362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 03720362
0181 CONTINUE 03730362
CT019* TEST 19 FIRST VALUE NON-ZERO, 2ND ZERO PRECEDED BY MINUS SIGN 03740362
IVTNUM = 19 03750362
RIDVS = 5.625 03760362
RIEVS = 0.0 03770362
RIAVS = AMIN1(RIDVS, -RIEVS) 03780362
IF (RIAVS + 0.00005) 20190, 10190, 40190 03790362
40190 IF (RIAVS - 0.00005) 10190, 10190, 20190 03800362
10190 IVPASS = IVPASS + 1 03810362
WRITE (NUVI, 80002) IVTNUM 03820362
GO TO 0191 03830362
20190 IVFAIL = IVFAIL + 1 03840362
RVCORR = 0.0 03850362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 03860362
0191 CONTINUE 03870362
CT020* TEST 20 EXPRESSION AS ARGUMENT 03880362
IVTNUM = 20 03890362
RIDVS = 3.5 03900362
RIEVS = 4.0 03910362
RIAVS = AMIN1(RIDVS + RIEVS, -RIEVS - RIDVS) 03920362
IF (RIAVS + 7.5004) 20200, 10200, 40200 03930362
40200 IF (RIAVS + 7.4996) 10200, 10200, 20200 03940362
10200 IVPASS = IVPASS + 1 03950362
WRITE (NUVI, 80002) IVTNUM 03960362
GO TO 0201 03970362
20200 IVFAIL = IVFAIL + 1 03980362
RVCORR = -7.5 03990362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 04000362
0201 CONTINUE 04010362
CT021* TEST 21 3 ARGUMENTS 04020362
IVTNUM = 21 04030362
RIBVS = 0.0 04040362
RICVS = 1.0 04050362
RIDVS = 10.9 04060362
RIAVS = AMIN1(RIDVS, RICVS, RIBVS) 04070362
IF (RIAVS + 0.00005) 20210, 10210, 40210 04080362
40210 IF (RIAVS - 0.00005) 10210, 10210, 20210 04090362
10210 IVPASS = IVPASS + 1 04100362
WRITE (NUVI, 80002) IVTNUM 04110362
GO TO 0211 04120362
20210 IVFAIL = IVFAIL + 1 04130362
RVCORR = 0.0 04140362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 04150362
0211 CONTINUE 04160362
CT022* TEST 22 4 ARGUMENTS 04170362
IVTNUM = 22 04180362
RIBVS = -9.0 04190362
RICVS = 10.0 04200362
RIDVS = 3.5 04210362
RIAVS = AMIN1(RIDVS, RICVS, -RIBVS, RIDVS) 04220362
IF (RIAVS - 3.4998) 20220, 10220, 40220 04230362
40220 IF (RIAVS - 3.5002) 10220, 10220, 20220 04240362
10220 IVPASS = IVPASS + 1 04250362
WRITE (NUVI, 80002) IVTNUM 04260362
GO TO 0221 04270362
20220 IVFAIL = IVFAIL + 1 04280362
RVCORR = 3.5 04290362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 04300362
0221 CONTINUE 04310362
CT023* TEST 23 5 ARGUMENTS 04320362
IVTNUM = 23 04330362
RIDVS = 3.5 04340362
RIEVS = 4.5 04350362
RIAVS = AMIN1(RIDVS, -RIDVS, -RIEVS, +RIDVS, RIEVS) 04360362
IF (RIAVS + 4.5003) 20230, 10230, 40230 04370362
40230 IF (RIAVS + 4.4997) 10230, 10230, 20230 04380362
10230 IVPASS = IVPASS + 1 04390362
WRITE (NUVI, 80002) IVTNUM 04400362
GO TO 0231 04410362
20230 IVFAIL = IVFAIL + 1 04420362
RVCORR = -4.5 04430362
WRITE (NUVI, 80012) IVTNUM, RIAVS, RVCORR 04440362
0231 CONTINUE 04450362
C***** 04460362
WRITE (NUVI, 90002) 04470362
WRITE (NUVI, 90013) 04480362
WRITE (NUVI, 90014) 04490362
C***** TEST OF MIN0 04500362
C***** 04510362
WRITE(NUVI, 16705) 04520362
16705 FORMAT (/ 8X, "TEST OF MIN0" ) 04530362
CT024* TEST 24 BOTH VALUES ZERO 04540362
IVTNUM = 24 04550362
IIBVI = 0 04560362
IIDVI = 0 04570362
IIAVI = MIN0(IIBVI, IIDVI) 04580362
IF (IIAVI - 0) 20240, 10240, 20240 04590362
10240 IVPASS = IVPASS + 1 04600362
WRITE (NUVI, 80002) IVTNUM 04610362
GO TO 0241 04620362
20240 IVFAIL = IVFAIL + 1 04630362
IVCORR = 0 04640362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 04650362
0241 CONTINUE 04660362
CT025* TEST 25 FIRST VALUE NON-ZERO, SECOND ZERO 04670362
IVTNUM = 25 04680362
IIBVI = 6 04690362
IIDVI = 0 04700362
IIAVI = MIN0(IIBVI, IIDVI) 04710362
IF (IIAVI - 0) 20250, 10250, 20250 04720362
10250 IVPASS = IVPASS + 1 04730362
WRITE (NUVI, 80002) IVTNUM 04740362
GO TO 0251 04750362
20250 IVFAIL = IVFAIL + 1 04760362
IVCORR = 0 04770362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 04780362
0251 CONTINUE 04790362
CT026* TEST 26 BOTH VALUES EQUAL 04800362
IVTNUM = 26 04810362
IIBVI = 7 04820362
IIDVI = 7 04830362
IIAVI = MIN0(IIBVI, IIDVI) 04840362
IF (IIAVI - 7) 20260, 10260, 20260 04850362
10260 IVPASS = IVPASS + 1 04860362
WRITE (NUVI, 80002) IVTNUM 04870362
GO TO 0261 04880362
20260 IVFAIL = IVFAIL + 1 04890362
IVCORR = 7 04900362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 04910362
0261 CONTINUE 04920362
CT027* TEST 27 VALUES NOT EQUAL 04930362
IVTNUM = 27 04940362
IIBVI = 7 04950362
IIDVI = 5 04960362
IIAVI = MIN0(IIBVI, IIDVI) 04970362
IF (IIAVI - 5) 20270, 10270, 20270 04980362
10270 IVPASS = IVPASS + 1 04990362
WRITE (NUVI, 80002) IVTNUM 05000362
GO TO 0271 05010362
20270 IVFAIL = IVFAIL + 1 05020362
IVCORR = 5 05030362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 05040362
0271 CONTINUE 05050362
CT028* TEST 28 FIRST VALUE NEGATIVE, SECOND ZERO 05060362
IVTNUM = 28 05070362
IIBVI = -6 05080362
IIDVI = 0 05090362
IIAVI = MIN0(IIBVI, IIDVI) 05100362
IF (IIAVI + 6) 20280, 10280, 20280 05110362
10280 IVPASS = IVPASS + 1 05120362
WRITE (NUVI, 80002) IVTNUM 05130362
GO TO 0281 05140362
20280 IVFAIL = IVFAIL + 1 05150362
IVCORR = -6 05160362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 05170362
0281 CONTINUE 05180362
CT029* TEST 29 BOTH VALUES EQUAL, BOTH NEGATIVE 05190362
IVTNUM = 29 05200362
IIBVI = -7 05210362
IIDVI = -7 05220362
IIAVI = MIN0(IIBVI, IIDVI) 05230362
IF (IIAVI + 7) 20290, 10290, 20290 05240362
10290 IVPASS = IVPASS + 1 05250362
WRITE (NUVI, 80002) IVTNUM 05260362
GO TO 0291 05270362
20290 IVFAIL = IVFAIL + 1 05280362
IVCORR = -7 05290362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 05300362
0291 CONTINUE 05310362
CT030* TEST 30 VALUES NOT EQUAL, BOTH NEGATIVE 05320362
IVTNUM = 30 05330362
IIBVI = -7 05340362
IIDVI = -5 05350362
IIAVI = MIN0(IIBVI, IIDVI) 05360362
IF (IIAVI + 7) 20300, 10300, 20300 05370362
10300 IVPASS = IVPASS + 1 05380362
WRITE (NUVI, 80002) IVTNUM 05390362
GO TO 0301 05400362
20300 IVFAIL = IVFAIL + 1 05410362
IVCORR = -7 05420362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 05430362
0301 CONTINUE 05440362
CT031* TEST 31 FIRST VALUE NON-ZERO, 2ND ZERO PRECEDED BY MINUS SIGN 05450362
IVTNUM = 31 05460362
IIDVI = 6 05470362
IIEVI = 0 05480362
IIAVI = MIN0(IIDVI, -IIEVI) 05490362
IF (IIAVI - 0) 20310, 10310, 20310 05500362
10310 IVPASS = IVPASS + 1 05510362
WRITE (NUVI, 80002) IVTNUM 05520362
GO TO 0311 05530362
20310 IVFAIL = IVFAIL + 1 05540362
IVCORR = 0 05550362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 05560362
0311 CONTINUE 05570362
CT032* TEST 32 EXPRESSION PRESENTED TO FUNCTION 05580362
IVTNUM = 32 05590362
IIDVI = 3 05600362
IIEVI = 4 05610362
IIAVI = MIN0(IIDVI + IIEVI, -IIEVI - IIDVI) 05620362
IF (IIAVI + 7) 20320, 10320, 20320 05630362
10320 IVPASS = IVPASS + 1 05640362
WRITE (NUVI, 80002) IVTNUM 05650362
GO TO 0321 05660362
20320 IVFAIL = IVFAIL + 1 05670362
IVCORR = -7 05680362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 05690362
0321 CONTINUE 05700362
CT033* TEST 33 3 ARGUMENTS 05710362
IVTNUM = 33 05720362
IIBVI = 0 05730362
IICVI = 10 05740362
IIDVI = -11 05750362
IIAVI = MIN0(IICVI, IIBVI, -IIDVI) 05760362
IF (IIAVI - 0) 20330, 10330, 20330 05770362
10330 IVPASS = IVPASS + 1 05780362
WRITE (NUVI, 80002) IVTNUM 05790362
GO TO 0331 05800362
20330 IVFAIL = IVFAIL + 1 05810362
IVCORR = 0 05820362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 05830362
0331 CONTINUE 05840362
CT034* TEST 34 4 ARGUMENTS 05850362
IVTNUM = 34 05860362
IIAVI = 10 05870362
IIBVI = -4 05880362
IICVI = 8 05890362
IIDVI = 4 05900362
IIAVI = MIN0(IIAVI, -IIBVI, IICVI, IIDVI) 05910362
IF (IIAVI - 4) 20340, 10340, 20340 05920362
10340 IVPASS = IVPASS + 1 05930362
WRITE (NUVI, 80002) IVTNUM 05940362
GO TO 0341 05950362
20340 IVFAIL = IVFAIL + 1 05960362
IVCORR = 4 05970362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 05980362
0341 CONTINUE 05990362
CT035* TEST 35 5 ARGUMENTS 06000362
IVTNUM = 35 06010362
IIDVI = 4 06020362
IIEVI = 5 06030362
IIAVI = MIN0(IIDVI, -IIDVI, -IIEVI, +IIDVI, IIEVI) 06040362
IF (IIAVI + 5) 20350, 10350, 20350 06050362
10350 IVPASS = IVPASS + 1 06060362
WRITE (NUVI, 80002) IVTNUM 06070362
GO TO 0351 06080362
20350 IVFAIL = IVFAIL + 1 06090362
IVCORR = -5 06100362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 06110362
0351 CONTINUE 06120362
C***** 06130362
WRITE (NUVI, 90002) 06140362
WRITE (NUVI, 90013) 06150362
WRITE (NUVI, 90014) 06160362
C***** TEST OF MIN1 06170362
C***** 06180362
WRITE(NUVI, 16707) 06190362
16707 FORMAT (/ 8X, "TEST OF MIN1" ) 06200362
CT036* TEST 36 BOTH VALUES ZERO 06210362
IVTNUM = 36 06220362
RIBVS = 0.0 06230362
RIDVS = 0.0 06240362
IIAVI = MIN1(RIBVS, RIDVS) 06250362
IF (IIAVI - 0) 20360, 10360, 20360 06260362
10360 IVPASS = IVPASS + 1 06270362
WRITE (NUVI, 80002) IVTNUM 06280362
GO TO 0361 06290362
20360 IVFAIL = IVFAIL + 1 06300362
IVCORR = 0 06310362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 06320362
0361 CONTINUE 06330362
CT037* TEST 37 FIRST VALUE NON-ZERO, SECOND ZERO 06340362
IVTNUM = 37 06350362
RIBVS = 5.625 06360362
RIDVS = 0.0 06370362
IIAVI = MIN1(RIBVS, RIDVS) 06380362
IF (IIAVI - 0) 20370, 10370, 20370 06390362
10370 IVPASS = IVPASS + 1 06400362
WRITE (NUVI, 80002) IVTNUM 06410362
GO TO 0371 06420362
20370 IVFAIL = IVFAIL + 1 06430362
IVCORR = 0 06440362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 06450362
0371 CONTINUE 06460362
CT038* TEST 38 BOTH VALUES EQUAL 06470362
IVTNUM = 38 06480362
RIBVS = 6.5 06490362
RIDVS = 6.5 06500362
IIAVI = MIN1(RIBVS, RIDVS) 06510362
IF (IIAVI - 6) 20380, 10380, 20380 06520362
10380 IVPASS = IVPASS + 1 06530362
WRITE (NUVI, 80002) IVTNUM 06540362
GO TO 0381 06550362
20380 IVFAIL = IVFAIL + 1 06560362
IVCORR = 6 06570362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 06580362
0381 CONTINUE 06590362
CT039* TEST 39 VALUES NOT EQUAL 06600362
IVTNUM = 39 06610362
RIBVS = 7.125 06620362
RIDVS = 5.125 06630362
IIAVI = MIN1(RIBVS, RIDVS) 06640362
IF (IIAVI - 5) 20390, 10390, 20390 06650362
10390 IVPASS = IVPASS + 1 06660362
WRITE (NUVI, 80002) IVTNUM 06670362
GO TO 0391 06680362
20390 IVFAIL = IVFAIL + 1 06690362
IVCORR = 5 06700362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 06710362
0391 CONTINUE 06720362
CT040* TEST 40 FIRST VALUE NEGATIVE, SECOND ZERO 06730362
IVTNUM = 40 06740362
RIBVS = -5.625 06750362
RIDVS = 0.0 06760362
IIAVI = MIN1(RIBVS, RIDVS) 06770362
IF (IIAVI + 5) 20400, 10400, 20400 06780362
10400 IVPASS = IVPASS + 1 06790362
WRITE (NUVI, 80002) IVTNUM 06800362
GO TO 0401 06810362
20400 IVFAIL = IVFAIL + 1 06820362
IVCORR = -5 06830362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 06840362
0401 CONTINUE 06850362
CT041* TEST 41 BOTH VALUES EQUAL, BOTH NEGATIVE 06860362
IVTNUM = 41 06870362
RIBVS = -6.5 06880362
RIDVS = -6.5 06890362
IIAVI = MIN1(RIBVS, RIDVS) 06900362
IF (IIAVI + 6) 20410, 10410, 20410 06910362
10410 IVPASS = IVPASS + 1 06920362
WRITE (NUVI, 80002) IVTNUM 06930362
GO TO 0411 06940362
20410 IVFAIL = IVFAIL + 1 06950362
IVCORR = -6 06960362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 06970362
0411 CONTINUE 06980362
CT042* TEST 42 VALUES NOT EQUAL, BOTH NEGATIVE 06990362
IVTNUM = 42 07000362
RIBVS = -7.125 07010362
RIDVS = -5.125 07020362
IIAVI = MIN1(RIBVS, RIDVS) 07030362
IF (IIAVI + 7) 20420, 10420, 20420 07040362
10420 IVPASS = IVPASS + 1 07050362
WRITE (NUVI, 80002) IVTNUM 07060362
GO TO 0421 07070362
20420 IVFAIL = IVFAIL + 1 07080362
IVCORR = -7 07090362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 07100362
0421 CONTINUE 07110362
CT043* TEST 43 FIRST VALUE NON-ZERO, 2ND ZERO PRECEDED BY MINUS SIGN 07120362
IVTNUM = 43 07130362
RIDVS = 5.625 07140362
RIEVS = 0.0 07150362
IIAVI = MIN1(RIDVS, -RIEVS) 07160362
IF (IIAVI - 0) 20430, 10430, 20430 07170362
10430 IVPASS = IVPASS + 1 07180362
WRITE (NUVI, 80002) IVTNUM 07190362
GO TO 0431 07200362
20430 IVFAIL = IVFAIL + 1 07210362
IVCORR = 0 07220362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 07230362
0431 CONTINUE 07240362
CT044* TEST 44 EXPRESSION PRESENTED TO FUNCTION 07250362
IVTNUM = 44 07260362
RIDVS = 3.5 07270362
RIEVS = 4.0 07280362
IIAVI = MIN1(RIDVS + RIEVS, -RIEVS - RIDVS) 07290362
IF (IIAVI + 7) 20440, 10440, 20440 07300362
10440 IVPASS = IVPASS + 1 07310362
WRITE (NUVI, 80002) IVTNUM 07320362
GO TO 0441 07330362
20440 IVFAIL = IVFAIL + 1 07340362
IVCORR = -7 07350362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 07360362
0441 CONTINUE 07370362
CT045* TEST 45 3 ARGUMENTS 07380362
IVTNUM = 45 07390362
RIBVS = 0.0 07400362
RICVS = 1.0 07410362
RIDVS = 2.0 07420362
IIAVI = MIN1(RIBVS, RICVS, RIDVS) 07430362
IF (IIAVI - 0) 20450, 10450, 20450 07440362
10450 IVPASS = IVPASS + 1 07450362
WRITE (NUVI, 80002) IVTNUM 07460362
GO TO 0451 07470362
20450 IVFAIL = IVFAIL + 1 07480362
IVCORR = 0 07490362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 07500362
0451 CONTINUE 07510362
CT046* TEST 46 4 ARGUMENTS 07520362
IVTNUM = 46 07530362
RIAVS = -3.5 07540362
RIBVS = 12.0 07550362
RICVS = 3.6 07560362
RIDVS = 3.5 07570362
IIAVI = MIN1(-RIAVS, RIBVS, RICVS, RIDVS) 07580362
IF (IIAVI - 3) 20460, 10460, 20460 07590362
10460 IVPASS = IVPASS + 1 07600362
WRITE (NUVI, 80002) IVTNUM 07610362
GO TO 0461 07620362
20460 IVFAIL = IVFAIL + 1 07630362
IVCORR = 3 07640362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 07650362
0461 CONTINUE 07660362
CT047* TEST 47 5 ARGUMENTS 07670362
IVTNUM = 47 07680362
RIDVS = 3.5 07690362
RIEVS = 4.5 07700362
IIAVI = MIN1(RIDVS, -RIDVS, -RIEVS, +RIDVS, RIEVS) 07710362
IF (IIAVI + 4) 20470, 10470, 20470 07720362
10470 IVPASS = IVPASS + 1 07730362
WRITE (NUVI, 80002) IVTNUM 07740362
GO TO 0471 07750362
20470 IVFAIL = IVFAIL + 1 07760362
IVCORR = -4 07770362
WRITE (NUVI, 80010) IVTNUM, IIAVI, IVCORR 07780362
0471 CONTINUE 07790362
C***** 07800362
CBB** ********************** BBCSUM0 **********************************07810362
C**** WRITE OUT TEST SUMMARY 07820362
C**** 07830362
IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 07840362
WRITE (I02, 90004) 07850362
WRITE (I02, 90014) 07860362
WRITE (I02, 90004) 07870362
WRITE (I02, 90020) IVPASS 07880362
WRITE (I02, 90022) IVFAIL 07890362
WRITE (I02, 90024) IVDELE 07900362
WRITE (I02, 90026) IVINSP 07910362
WRITE (I02, 90028) IVTOTN, IVTOTL 07920362
CBE** ********************** BBCSUM0 **********************************07930362
CBB** ********************** BBCFOOT0 **********************************07940362
C**** WRITE OUT REPORT FOOTINGS 07950362
C**** 07960362
WRITE (I02,90016) ZPROG, ZPROG 07970362
WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 07980362
WRITE (I02,90019) 07990362
CBE** ********************** BBCFOOT0 **********************************08000362
CBB** ********************** BBCFMT0A **********************************08010362
C**** FORMATS FOR TEST DETAIL LINES 08020362
C**** 08030362
80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 08040362
80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 08050362
80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 08060362
80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 08070362
80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 08080362
1I6,/," ",15X,"CORRECT= " ,I6) 08090362
80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 08100362
1E12.5,/," ",16X,"CORRECT= " ,E12.5) 08110362
80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 08120362
1A21,/," ",16X,"CORRECT= " ,A21) 08130362
80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 08140362
80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 08150362
80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 08160362
80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 08170362
80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 08180362
80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 08190362
80050 FORMAT (" ",48X,A31) 08200362
CBE** ********************** BBCFMT0A **********************************08210362
CBB** ********************** BBCFMT0B **********************************08220362
C**** FORMAT STATEMENTS FOR PAGE HEADERS 08230362
C**** 08240362
90002 FORMAT ("1") 08250362
90004 FORMAT (" ") 08260362
90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )08270362
90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 08280362
90008 FORMAT (" ",21X,A13,A17) 08290362
90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 08300362
90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 08310362
90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 08320362
1 7X,"REMARKS",24X) 08330362
90014 FORMAT (" ","----------------------------------------------" , 08340362
1 "---------------------------------" ) 08350362
90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 08360362
C**** 08370362
C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 08380362
C**** 08390362
90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 08400362
90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 08410362
1 A13) 08420362
90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 08430362
C**** 08440362
C**** FORMAT STATEMENTS FOR RUN SUMMARY 08450362
C**** 08460362
90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 08470362
90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 08480362
90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 08490362
90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 08500362
90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 08510362
CBE** ********************** BBCFMT0B **********************************08520362
C***** 08530362
C***** END OF TEST SEGMENT 167 08540362
STOP 08550362
END 08560362
08570362