1c comment section 2c 3c fm001 4c 5c this routine contains the boilerplate source coding which 6c is used to print the report headings and run summaries for each 7c of the elementary routines. 8c 9c three tests are included which contain the procedures for 10c testing the language features and deleting tests. 11c 12c test 1 checks the pass procedure 13c test 2 checks the fail procedure 14c test 3 checks the delete procedure 15c 16c if this routine does not execute correctly, then no other 17c routines will be run. there is no use in trying to validate a 18c fortran compiler which cannot handle such basic statements. 19c 20c ********************************************************** 21c 22c a compiler validation system for the fortran language 23c based on specifications as defined in american national standard 24c programming language fortran x3.9-1978, has been developed by the 25c federal cobol compiler testing service. the fortran compiler 26c validation system (fcvs) consists of audit routines, their related 27c data, and an executive system. each audit routine is a fortran 28c program, subprogram or function which includes tests of specific 29c language elements and supporting procedures indicating the result 30c of executing these tests. 31c 32c this particular program/subprogram/function contains features 33c found only in the subset as defined in x3.9-1978. 34c 35c suggestions and comments should be forwarded to - 36c 37c department of the navy 38c federal cobol compiler testing service 39c washington, d.c. 20376 40c 41c ********************************************************** 42c 43c 44c 45c initialization section 46c 47c initialize constants 48c ************** 49c i01 contains the logical unit number for the card reader. 50 i01 = 5 51c i02 contains the logical unit number for the printer. 52 i02 = 6 53c system environment section 54c 55cx010 this card is replaced by contents of fexec x-010 control card. 56c the cx010 card is for overriding the program default i01 = 5 57c (unit number for card reader). 58cx011 this card is replaced by contents of fexec x-011 control card. 59c the cx011 card is for systems which require additional 60c fortran statements for files associated with cx010 above. 61c 62cx020 this card is replaced by contents of fexec x-020 control card. 63c the cx020 card is for overriding the program default i02 = 6 64c (unit number for printer). 65cx021 this card is replaced by contents of fexec x-021 control card. 66c the cx021 card is for systems which require additional 67c fortran statements for files associated with cx020 above. 68c 69 ivpass=0 70 ivfail=0 71 ivdele=0 72 iczero=0 73c 74c write page headers 75 write (i02,90000) 76 write (i02,90001) 77 write (i02,90002) 78 write (i02, 90002) 79 write (i02,90003) 80 write (i02,90002) 81 write (i02,90004) 82 write (i02,90002) 83 write (i02,90011) 84 write (i02,90002) 85 write (i02,90002) 86 write (i02,90005) 87 write (i02,90006) 88 write (i02,90002) 89c test section 90c 91 11 continue 92c 93c **** test 001 **** 94c test 001 - basic procedure for coding tests 95c also checks continue statement which should not have 96c any affect on execution sequence 97c 98 if (iczero) 30010, 10, 30010 99 10 continue 100 ivtnum=1 101 go to 40010 10230010 ivdele=ivdele+1 103 write (i02,80003) ivtnum 104 if (iczero) 40010, 21, 40010 10540010 if (ivtnum - 1) 20010, 10010, 20010 10610010 ivpass=ivpass+1 107 write (i02,80001) ivtnum 108 go to 21 10920010 ivfail=ivfail+1 110 ivcomp=ivtnum 111 ivcorr=1 112 write (i02,80004) ivtnum, ivcomp, ivcorr 113 21 continue 114c 115c **** test 002 **** 116c test - 002 force fail code to be executed 117c 118 if (iczero) 30020,20,30020 119 20 continue 120 ivtnum=2 121 go to 40020 12230020 ivdele=ivdele+1 123 write (i02,80003) ivtnum 124 if (iczero) 40020,31,40020 12540020 if (ivtnum-1) 20020, 10020, 20020 12610020 ivpass=ivpass+1 127 write (i02,80001) ivtnum 128 go to 31 12920020 ivfail=ivfail+1 130 ivcomp=ivtnum 131 ivcorr=2 132 write (i02,80004) ivtnum, ivcomp, ivcorr 133 31 continue 134c 135c **** test 003 **** 136c test 003 - delete procedure tested 137c 138 if (iczero) 30030,30,30030 139 30 continue 140c ivtnum=5000 141c go to 40030 14230030 ivdele=ivdele+1 143 ivtnum=3 144 write (i02,80003) ivtnum 145 if (iczero) 40030,99999,40030 14640030 if (ivtnum - 5000) 20030,10030,20030 14710030 ivpass=ivpass +1 148 write (i02,80001) ivtnum 149 go to 99999 15020030 ivfail=ivfail+1 151 ivcomp=ivtnum 152 ivcorr=5000 153 write (i02,80004) ivtnum, ivcomp, ivcorr 154c 155c write page footings and run summaries 15699999 continue 157 write (i02,90002) 158 write (i02,90006) 159 write (i02,90002) 160 write (i02,90002) 161 write (i02,90007) 162 write (i02,90002) 163 write (i02,90008) ivfail 164 write (i02,90009) ivpass 165 write (i02,90010) ivdele 166c 167c 168c special output statements for this routine 169 write (i02,90000) 170 write (i02,90002) 171 write (i02,80031) 172 write (i02,90002) 173 write (i02,80010) 174 write (i02,80020) 175 write (i02,80030) 176 write (i02,80032) 177c 178c terminate routine execution 179 stop 180c 181c format statements for page headers 18290000 format (1h1) 18390002 format (1h ) 18490001 format (1h ,10x,34hfortran compiler validation system) 18590003 format (1h ,21x,11hversion 1.0) 18690004 format (1h ,10x,38hfor official use only - copyright 1978) 18790005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) 18890006 format (1h ,5x,46h----------------------------------------------) 18990011 format (1h ,18x,17hsubset level test) 190c 191c format statements for run summaries 19290008 format (1h ,15x,i5,19h errors encountered) 19390009 format (1h ,15x,i5,13h tests passed) 19490010 format (1h ,15x,i5,14h tests deleted) 195c 196c format statements for test results 19780001 format (1h ,4x,i5,7x,4hpass) 19880002 format (1h ,4x,i5,7x,4hfail) 19980003 format (1h ,4x,i5,7x,7hdeleted) 20080004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) 20180005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) 202c 203c formats for current routine 20480031 format (1h ,10x,39hthe program fm001 executed correctly if) 20580010 format (1h ,15x,13htest 1 passed) 20680020 format (1h ,15x,42htest 2 failed with computed and correct =2) 20780030 format (1h ,15x,18htest 3 was deleted) 20880032 format (1h ,15x,34hthe run summary totals all equal 1) 20990007 format (1h ,20x,20hend of program fm001) 210 end 211