PROGRAM FM722 00010722 C 00020722 C ************************************************************* 00030722 C THE FULL LANGUAGE SET ALLOWS DATA TYPES TO BE DECLARED DOUBLE 00040722 C PRECISION AND COMPLEX. 00050722 C (NIST TEST/PROGRAM IDENTIFICATION S04AF-2P) 00060722 C ************************************************************* 00070722 C REFERENCES. 00080722 C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00090722 C X3.9-1978 00100722 C 00110722 C SECTION 4 DATA TYPES AND CONSTANTS 00120722 C PARAGRAPHS: 00130722 C 00140722 C 4.1 00150722 C 4.1.2 00160722 C 00170722 C SECTION 8 SPECIFICATION STATEMENTS 00180722 C PARAGRAPHS: 00190722 C 8.4.1 00200722 C 8.6 00210722 C 00220722 C TEST DATA TYPES DOUBLE PRECISION AND COMPLEX USING: 00230722 C 00240722 C TYP V [,V1] 00250722 C 00260722 C TYP = DOUBLE PRECISION OR COMPLEX 00270722 C V = VARIABLE NAME, ARRAY NAME, ARRAY DECLARATOR, 00280722 C SYMBOLIC NAME OF A CONSTANT, FUNCTION NAME, 00290722 C OR DUMMY PROCEDURE NAME 00300722 C 00310722 C FM722 USES FUNCTIONS DF723, ZF724 AND SUBROUTINE SN725 00320722 C **************************************************************** 00330722 C 00340722 CBB** ********************** BBCCOMNT **********************************00350722 C**** 00360722 C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00370722 C**** VERSION 2.1 00380722 C**** 00390722 C**** 00400722 C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00410722 C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00420722 C**** SOFTWARE STANDARDS VALIDATION GROUP 00430722 C**** BUILDING 225 RM A266 00440722 C**** GAITHERSBURG, MD 20899 00450722 C**** 00460722 C**** 00470722 C**** 00480722 CBE** ********************** BBCCOMNT **********************************00490722 IMPLICIT DOUBLE PRECISION (D), COMPLEX (Z), LOGICAL (L) 00500722 IMPLICIT CHARACTER*27 (C) 00510722 C 00520722 CBB** ********************** BBCINITA **********************************00530722 C**** SPECIFICATION STATEMENTS 00540722 C**** 00550722 CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00560722 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00570722 CBE** ********************** BBCINITA **********************************00580722 DOUBLE PRECISION NVCOMP,DF723 00590722 COMPLEX ICP001,I2N002(2),ZF724 00600722 REAL R2NN02(2) 00610722 EQUIVALENCE (ZVCOMP,R2NN02) 00620722 PARAMETER (DPN001=5.834D6,IPN001=2,DCN004=1.456D3) 00630722 PARAMETER (ICP001=(3.2, 2.3)) 00640722 DIMENSION D2N001(IPN001) 00650722 EXTERNAL DF723,ZF724 00660722 COMMON /BVN001/ DVC006 00670722 DATA D2N001(1),D2N001(2) / IPN001*DCN004 / 00680722 DATA I2N002(1),I2N002(2) / IPN001*(3.2, 2.3) / 00690722 DSN001(DVN003,DVN004) = DVN003 + DVN004 00700722 DSN006(DVN007,DVN008) = (DSN001(DVN007,DVN007) + DVN008) 00710722 ZSN001(RVN001,RVN002) = CMPLX(RVN001,RVN002) + 00720722 1CMPLX(RVN002,RVN002) 00730722 C 00740722 C 00750722 CBB** ********************** BBCINITB **********************************00760722 C**** INITIALIZE SECTION 00770722 DATA ZVERS, ZVERSD, ZDATE 00780722 1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00790722 DATA ZCOMPL, ZNAME, ZTAPE 00800722 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00810722 DATA ZPROJ, ZTAPED, ZPROG 00820722 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00830722 DATA REMRKS /' '/ 00840722 C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00850722 C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00860722 C**** 00870722 CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00880722 CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00890722 CZ03 ZPROG = 'PROGRAM NAME' 00900722 CZ04 ZDATE = 'DATE OF TEST' 00910722 CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00920722 CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00930722 CZ07 ZNAME = 'NAME OF USER' 00940722 CZ08 ZTAPE = 'TAPE OWNER/ID' 00950722 CZ09 ZTAPED = 'DATE TAPE COPIED' 00960722 C 00970722 IVPASS = 0 00980722 IVFAIL = 0 00990722 IVDELE = 0 01000722 IVINSP = 0 01010722 IVTOTL = 0 01020722 IVTOTN = 0 01030722 ICZERO = 0 01040722 C 01050722 C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 01060722 I01 = 05 01070722 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 01080722 I02 = 06 01090722 C 01100722 CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 01110722 C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 01120722 CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 01130722 C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 01140722 C 01150722 CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 01160722 C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 01170722 CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 01180722 C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 01190722 C 01200722 CBE** ********************** BBCINITB **********************************01210722 ZPROG='FM722' 01220722 IVTOTL = 12 01230722 CBB** ********************** BBCHED0A **********************************01240722 C**** 01250722 C**** WRITE REPORT TITLE 01260722 C**** 01270722 WRITE (I02, 90002) 01280722 WRITE (I02, 90006) 01290722 WRITE (I02, 90007) 01300722 WRITE (I02, 90008) ZVERS, ZVERSD 01310722 WRITE (I02, 90009) ZPROG, ZPROG 01320722 WRITE (I02, 90010) ZDATE, ZCOMPL 01330722 CBE** ********************** BBCHED0A **********************************01340722 CBB** ********************** BBCHED0B **********************************01350722 C**** WRITE DETAIL REPORT HEADERS 01360722 C**** 01370722 WRITE (I02,90004) 01380722 WRITE (I02,90004) 01390722 WRITE (I02,90013) 01400722 WRITE (I02,90014) 01410722 WRITE (I02,90015) IVTOTL 01420722 CBE** ********************** BBCHED0B **********************************01430722 C 01440722 CT001* TEST 001 **** FCVS PROGRAM 722 **** 01450722 C 01460722 C TEST 001 IS DESIGNED TO TEST A DOUBLE PRECISION CONSTANT 01470722 C VALUE SET WITH PARAMETER STATEMENT 01480722 C 01490722 IVTNUM = 1 01500722 DVCOMP=0.0D0 01510722 DVCOMP=DPN001 01520722 DVCORR=5.834D6 01530722 IF (DPN001 - 5.833999997D6) 20010,10010,40010 01540722 40010 IF (DPN001 - 5.834000003D6) 10010,10010,20010 01550722 10010 IVPASS = IVPASS + 1 01560722 WRITE (I02,80002) IVTNUM 01570722 GO TO 0011 01580722 20010 IVFAIL = IVFAIL + 1 01590722 WRITE (I02,80031) IVTNUM, DVCOMP, DVCORR 01600722 0011 CONTINUE 01610722 C 01620722 CT002* TEST 002 **** FCVS PROGRAM 722 **** 01630722 C 01640722 C TEST 002 IS DESIGNED TO TEST A DOUBLE PRECISION VARIABLE 01650722 C 01660722 IVTNUM = 2 01670722 DVCOMP=0.0D0 01680722 NVCOMP=.1212345D2 01690722 DVCOMP=NVCOMP 01700722 DVCORR=.1212345D2 01710722 IF (NVCOMP - .1212344999D2) 20020,40021,40020 01720722 40020 IF (NVCOMP - .1212345001D2) 40021,40021,20020 01730722 40021 DVCOMP = DVCOMP + .1212345D2 01740722 DVCORR=.2424690D2 01750722 IF (DVCOMP - .2424689998D2) 20020,10020,40022 01760722 40022 IF (DVCOMP - .2424690002D2) 10020,10020,20020 01770722 10020 IVPASS = IVPASS + 1 01780722 WRITE (I02,80002) IVTNUM 01790722 GO TO 0021 01800722 20020 IVFAIL = IVFAIL + 1 01810722 WRITE (I02,80031) IVTNUM, DVCOMP, DVCORR 01820722 0021 CONTINUE 01830722 C 01840722 CT003* TEST 003 **** FCVS PROGRAM 722 **** 01850722 C 01860722 C TEST 003 A DOUBLE PRECISION ARRAY 01870722 C 01880722 IVTNUM = 3 01890722 DVCOMP=0.0D0 01900722 DVCORR=2.912D3 01910722 DVCOMP=D2N001(1) + D2N001(2) 01920722 IF (DVCOMP - 2.911999998D3) 20030,10030,40030 01930722 40030 IF (DVCOMP - 2.912000002D3) 10030,10030,20030 01940722 10030 IVPASS = IVPASS + 1 01950722 WRITE (I02,80002) IVTNUM 01960722 GO TO 0031 01970722 20030 IVFAIL = IVFAIL + 1 01980722 WRITE (I02,80031) IVTNUM, DVCOMP, DVCORR 01990722 0031 CONTINUE 02000722 C 02010722 CT004* TEST 004 **** FCVS PROGRAM 722 **** 02020722 C 02030722 C TEST 004 IS DESIGNED TO TEST A DOUBLE PRECISION FUNCTION 02040722 C DF723 02050722 C 02060722 IVTNUM = 4 02070722 DVCOMP=0.0D0 02080722 DVN009=.1211D2 02090722 DVCOMP=DF723(DVN009) 02100722 DVCORR=1.001211D4 02110722 IF (DVCOMP - 1.001210999D4) 20040,10040,40040 02120722 40040 IF (DVCOMP - 1.001211001D4) 10040,10040,20040 02130722 10040 IVPASS = IVPASS + 1 02140722 WRITE (I02,80002) IVTNUM 02150722 GO TO 0041 02160722 20040 IVFAIL = IVFAIL + 1 02170722 WRITE (I02,80031) IVTNUM, DVCOMP, DVCORR 02180722 0041 CONTINUE 02190722 C 02200722 CT005* TEST 005 **** FCVS PROGRAM 722 **** 02210722 C 02220722 C TEST 005 IS DESIGNED TO TEST A DOUBLE PRECISION DUMMY 02230722 C PROCEDURE (DF723 USED AS DUMMY ARGUMENT FOR SUBROUTINE 02240722 C FS528 02250722 C 02260722 IVTNUM = 5 02270722 DVCOMP=0.0D0 02280722 DVCORR=1200000.0D-2 02290722 DVN009=0.0D0 02300722 DVN009=10D2 02310722 CALL SN725(DF723,DVN009) 02320722 DVCOMP=DVC006 02330722 IF (DVCOMP - .1199999999D5) 20050,10050,40050 02340722 40050 IF (DVCOMP - .1200000001D5) 10050,10050,20050 02350722 10050 IVPASS = IVPASS + 1 02360722 WRITE (I02,80002) IVTNUM 02370722 GO TO 0051 02380722 20050 IVFAIL = IVFAIL + 1 02390722 WRITE (I02,80031) IVTNUM, DVCOMP, DVCORR 02400722 0051 CONTINUE 02410722 C 02420722 CT006* TEST 006 **** FCVS PROGRAM 722 **** 02430722 C 02440722 C TEST 006 DOUBLE PRECISION FUNCTION NAME USING 02450722 C STATEMENT FUNCTION STATEMENT 02460722 C 02470722 IVTNUM = 6 02480722 DVCOMP=0.0D0 02490722 DVCORR=20D2 02500722 DVN009=10D2 02510722 DVN010=10D2 02520722 DVCOMP=DSN001(DVN009,DVN010) 02530722 IF (DVCOMP - 19.99999999D2) 20060,10060,40060 02540722 40060 IF (DVCOMP - 20.00000001D2) 10060,10060,20060 02550722 10060 IVPASS = IVPASS + 1 02560722 WRITE (I02,80002) IVTNUM 02570722 GO TO 0061 02580722 20060 IVFAIL = IVFAIL + 1 02590722 WRITE (I02,80031) IVTNUM, DVCOMP, DVCORR 02600722 0061 CONTINUE 02610722 C 02620722 CT007* TEST 007 **** FCVS PROGRAM 722 **** 02630722 C 02640722 C TEST 007 DOUBLE PRECISION FUNCTION NAME USED IN 02650722 C A STATEMENT FUNCTION STATEMENT AS A DUMMY ARGUMENT 02660722 C 02670722 IVTNUM = 7 02680722 DVCOMP=0.0D0 02690722 DVCORR=30D2 02700722 DVN009=10D2 02710722 DVN010=10D2 02720722 DVCOMP=DSN006(DVN009,DVN010) 02730722 IF (DVCOMP - 29.99999998D2) 20070,10070,40070 02740722 40070 IF (DVCOMP - 30.00000002D2) 10070,10070,20070 02750722 10070 IVPASS = IVPASS + 1 02760722 WRITE (I02,80002) IVTNUM 02770722 GO TO 0071 02780722 20070 IVFAIL = IVFAIL + 1 02790722 WRITE (I02,80031) IVTNUM, DVCOMP, DVCORR 02800722 0071 CONTINUE 02810722 C 02820722 C THE FOLLOWING GROUP OF TESTS ARE DESIGNED TO 02830722 C TEST COMPLEX DATA TYPES 02840722 C 02850722 C 02860722 CT008* TEST 008 **** FCVS PROGRAM 722 **** 02870722 C 02880722 C TEST 008 DATA TYPE CAN BE A COMPLEX VARIABLE 02890722 C 02900722 IVTNUM = 8 02910722 ZVCOMP=(0.0, 0.0) 02920722 ZVCORR=(1.0, 1.0) 02930722 ZVN001=(6.5, 2.2) 02940722 ZVN002=(5.5, 1.2) 02950722 ZVCOMP=ZVN001-ZVN002 02960722 IF (R2NN02(1) - 0.9995) 20080,40081,40080 02970722 40080 IF (R2NN02(1) - 1.0001) 40081,40081,20080 02980722 40081 IF (R2NN02(2) - 0.9995) 20080,10080,40082 02990722 40082 IF (R2NN02(2) - 1.0001) 10080,10080,20080 03000722 10080 IVPASS = IVPASS + 1 03010722 WRITE (I02,80002) IVTNUM 03020722 GO TO 0081 03030722 20080 IVFAIL = IVFAIL + 1 03040722 WRITE (I02,80045) IVTNUM, ZVCOMP, ZVCORR 03050722 0081 CONTINUE 03060722 C 03070722 CT009* TEST 009 **** FCVS PROGRAM 722 **** 03080722 C 03090722 C TEST 009 COMPLEX CONSTANT 03100722 C 03110722 IVTNUM = 9 03120722 ZVCOMP=(0.0, 0.0) 03130722 ZVCORR=(6.4, 4.6) 03140722 ZVCOMP=ICP001+ICP001 03150722 IF (R2NN02(1) - 6.3996) 20090,10090,40090 03160722 40090 IF (R2NN02(1) - 6.4004) 40091,40091,20090 03170722 40091 IF (R2NN02(2) - 4.5997) 20090,10090,40092 03180722 40092 IF (R2NN02(2) - 4.6003) 10090,10090,20090 03190722 10090 IVPASS = IVPASS + 1 03200722 WRITE (I02,80002) IVTNUM 03210722 GO TO 0091 03220722 20090 IVFAIL = IVFAIL + 1 03230722 WRITE (I02,80045) IVTNUM, ZVCOMP, ZVCORR 03240722 0091 CONTINUE 03250722 C 03260722 CT010* TEST 010 **** FCVS PROGRAM 722 **** 03270722 C 03280722 C TEST 010 COMPLEX ARRAY 03290722 C 03300722 IVTNUM = 10 03310722 ZVCOMP=(0.0, 0.0) 03320722 ZVCORR=(6.4, 4.6) 03330722 ZVCOMP=I2N002(1)+I2N002(2) 03340722 IF (R2NN02(1) - 6.3996) 20100,10100,40100 03350722 40100 IF (R2NN02(1) - 6.4004) 40101,40101,20100 03360722 40101 IF (R2NN02(2) - 4.5997) 20100,10100,40102 03370722 40102 IF (R2NN02(2) - 4.6003) 10100,10100,20100 03380722 10100 IVPASS = IVPASS + 1 03390722 WRITE (I02,80002) IVTNUM 03400722 GO TO 0101 03410722 20100 IVFAIL = IVFAIL + 1 03420722 WRITE (I02,80045) IVTNUM, ZVCOMP, ZVCORR 03430722 0101 CONTINUE 03440722 C 03450722 CT011* TEST 011 **** FCVS PROGRAM 722 **** 03460722 C 03470722 C TEST 011 COMPLEX FUNCTION NAME (USING STATEMENT FUNCTION) 03480722 C FUNCTION NAME CAN BE COMPLEX 03490722 C 03500722 IVTNUM = 11 03510722 ZVCORR=(3.0, 4.0) 03520722 ZVCOMP=(0.0, 0.0) 03530722 RVN004=1.0 03540722 RVN005=2.0 03550722 ZVCOMP=(ZSN001(RVN004,RVN005)) 03560722 IF (R2NN02(1) - 2.9998) 20110,10110,40110 03570722 40110 IF (R2NN02(1) - 3.0002) 40111,40111,20110 03580722 40111 IF (R2NN02(2) - 3.9998) 20110,10110,40112 03590722 40112 IF (R2NN02(2) - 4.0002) 10110,10110,20110 03600722 10110 IVPASS = IVPASS + 1 03610722 WRITE (I02,80002) IVTNUM 03620722 GO TO 0111 03630722 20110 IVFAIL = IVFAIL + 1 03640722 WRITE (I02,80045) IVTNUM, ZVCOMP, ZVCORR 03650722 0111 CONTINUE 03660722 C 03670722 CT012* TEST 012 **** FCVS PROGRAM 722 **** 03680722 C 03690722 C TEST 012 TEST COMPLEX FUNCTION NAME IN A FUNCTION SUBPROGRAM 03700722 C 03710722 IVTNUM = 12 03720722 ZVCORR=(3.0, 4.0) 03730722 ZVCOMP=(0.0, 0.0) 03740722 RVN004=1.0 03750722 RVN005=2.0 03760722 ZVCOMP=ZF724(RVN004,RVN005) 03770722 IF (R2NN02(1) - 2.9998) 20120,10120,40120 03780722 40120 IF (R2NN02(1) - 3.0002) 40121,40121,20120 03790722 40121 IF (R2NN02(2) - 3.9998) 20120,10120,40122 03800722 40122 IF (R2NN02(2) - 4.0002) 10120,10120,20120 03810722 10120 IVPASS = IVPASS + 1 03820722 WRITE (I02,80002) IVTNUM 03830722 GO TO 0121 03840722 20120 IVFAIL = IVFAIL + 1 03850722 WRITE (I02,80045) IVTNUM, ZVCOMP, ZVCORR 03860722 0121 CONTINUE 03870722 C 03880722 CBB** ********************** BBCSUM0 **********************************03890722 C**** WRITE OUT TEST SUMMARY 03900722 C**** 03910722 IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 03920722 WRITE (I02, 90004) 03930722 WRITE (I02, 90014) 03940722 WRITE (I02, 90004) 03950722 WRITE (I02, 90020) IVPASS 03960722 WRITE (I02, 90022) IVFAIL 03970722 WRITE (I02, 90024) IVDELE 03980722 WRITE (I02, 90026) IVINSP 03990722 WRITE (I02, 90028) IVTOTN, IVTOTL 04000722 CBE** ********************** BBCSUM0 **********************************04010722 CBB** ********************** BBCFOOT0 **********************************04020722 C**** WRITE OUT REPORT FOOTINGS 04030722 C**** 04040722 WRITE (I02,90016) ZPROG, ZPROG 04050722 WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 04060722 WRITE (I02,90019) 04070722 CBE** ********************** BBCFOOT0 **********************************04080722 90001 FORMAT (" ",56X,"FM722") 04090722 90000 FORMAT (" ",50X,"END OF PROGRAM FM722" ) 04100722 CBB** ********************** BBCFMT0A **********************************04110722 C**** FORMATS FOR TEST DETAIL LINES 04120722 C**** 04130722 80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 04140722 80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 04150722 80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 04160722 80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 04170722 80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 04180722 1I6,/," ",15X,"CORRECT= " ,I6) 04190722 80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04200722 1E12.5,/," ",16X,"CORRECT= " ,E12.5) 04210722 80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04220722 1A21,/," ",16X,"CORRECT= " ,A21) 04230722 80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 04240722 80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 04250722 80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 04260722 80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 04270722 80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 04280722 80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 04290722 80050 FORMAT (" ",48X,A31) 04300722 CBE** ********************** BBCFMT0A **********************************04310722 CBB** ********************** BBCFMAT1 **********************************04320722 C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 04330722 C**** 04340722 80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04350722 1D17.10,/," ",16X,"CORRECT= " ,D17.10) 04360722 80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 04370722 80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 04380722 80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 04390722 80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 04400722 80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 04410722 80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 04420722 80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04430722 1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 04440722 2"(",F12.5,", ",F12.5,")") 04450722 CBE** ********************** BBCFMAT1 **********************************04460722 CBB** ********************** BBCFMT0B **********************************04470722 C**** FORMAT STATEMENTS FOR PAGE HEADERS 04480722 C**** 04490722 90002 FORMAT ("1") 04500722 90004 FORMAT (" ") 04510722 90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )04520722 90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 04530722 90008 FORMAT (" ",21X,A13,A17) 04540722 90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 04550722 90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 04560722 90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 04570722 1 7X,"REMARKS",24X) 04580722 90014 FORMAT (" ","----------------------------------------------" , 04590722 1 "---------------------------------" ) 04600722 90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 04610722 C**** 04620722 C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 04630722 C**** 04640722 90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 04650722 90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 04660722 1 A13) 04670722 90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 04680722 C**** 04690722 C**** FORMAT STATEMENTS FOR RUN SUMMARY 04700722 C**** 04710722 90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 04720722 90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 04730722 90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 04740722 90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 04750722 90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 04760722 CBE** ********************** BBCFMT0B **********************************04770722 END 04780722 DOUBLE PRECISION FUNCTION DF723(DVN008) 00010723 C THIS FUNCTION IS USED BY PROGRAM FM722 TO TEST 00020723 C DOUBLE PRECISION FUNCTIONS 00030723 IMPLICIT DOUBLE PRECISION (D) 00040723 DF723=DVN008 + 100D2 00050723 RETURN 00060723 END 00070723 COMPLEX FUNCTION ZF724(RVN006,RVN007) 00010724 C THIS FUNCTION IS USED BY PROGRAM FM722 TO TEST 00020724 C COMPLEX FUNCTION NAME 00030724 IMPLICIT COMPLEX (Z) 00040724 ZF724= CMPLX(RVN006,RVN007) + CMPLX(RVN007,RVN007) 00050724 RETURN 00060724 END 00070724 SUBROUTINE SN725(DTINT, DVN008) 00010725 C THIS ROUTINE IS USED BY PROGRAM FM722 00020725 C TO TEST A DOUBLE PRECISION FUNCTION NAME USED AS AN 00030725 C ACTUAL ARGUMENT 00040725 IMPLICIT DOUBLE PRECISION (D) 00050725 COMMON /BVN001/ DVC006 00060725 DVC006=DTINT(DVN008) + 10D2 00070725 RETURN 00080725 END 00090725