date and time created 90/06/17 17:24:56 by bostic
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Mon, 18 Jun 1990 08:24:56 +0000 (00:24 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Mon, 18 Jun 1990 08:24:56 +0000 (00:24 -0800)
SCCS-vsn: usr.bin/f77/tests/tests/fm007.f 5.1

usr/src/usr.bin/f77/tests/tests/fm007.f [new file with mode: 0644]

diff --git a/usr/src/usr.bin/f77/tests/tests/fm007.f b/usr/src/usr.bin/f77/tests/tests/fm007.f
new file mode 100644 (file)
index 0000000..c1e59b9
--- /dev/null
@@ -0,0 +1,540 @@
+c        comment section
+c
+c     fm007
+c
+c         this routine tests the use of data initialization statements.
+c     data initialization statements are used to define initial values
+c     of integer variables.  the data statements contain unsigned,
+c     positive signed and negative signed integer constants.  the last
+c     data statement contains the form
+c                   j*integer constant
+c     which indicates the constant is to be specified j times.
+c
+c      the tests in this routine check the integer variables in the
+c     data statement for the assigned initial values.
+c
+c      references
+c        american national standard programming language fortran,
+c              x3.9-1978
+c
+c        section 4.3, integer type
+c        section 4.3.1, integer constant
+c        section 9, data statement
+c
+c
+c         data initialization statements
+c
+      data ivon01,ivon02,ivon03,ivon04,ivon05/3,76,587,9999,21111/
+      data ivon06,ivon07,ivon08,ivon09,ivon10/+3,+76,+587,+9999,+21111/
+      data ivon11,ivon12,ivon13,ivon14,ivon15/-3,-76,-587,-9999,-21111/
+      data ivon16,ivon17,ivon18,ivon19,ivon20/ 2*119, 2*7, -427/
+c
+c
+c      **********************************************************
+c
+c         a compiler validation system for the fortran language
+c     based on specifications as defined in american national standard
+c     programming language fortran x3.9-1978, has been developed by the
+c     federal cobol compiler testing service.  the fortran compiler
+c     validation system (fcvs) consists of audit routines, their related
+c     data, and an executive system.  each audit routine is a fortran
+c     program, subprogram or function which includes tests of specific
+c     language elements and supporting procedures indicating the result
+c     of executing these tests.
+c
+c         this particular program/subprogram/function contains features
+c     found only in the subset as defined in x3.9-1978.
+c
+c         suggestions and comments should be forwarded to -
+c
+c                  department of the navy
+c                  federal cobol compiler testing service
+c                  washington, d.c.  20376
+c
+c      **********************************************************
+c
+c
+c
+c     initialization section
+c
+c     initialize constants
+c      **************
+c     i01 contains the logical unit number for the card reader.
+      i01 = 5
+c     i02 contains the logical unit number for the printer.
+      i02 = 6
+c     system environment section
+c
+cx010    this card is replaced by contents of fexec x-010 control card.
+c     the cx010 card is for overriding the program default i01 = 5
+c     (unit number for card reader).
+cx011    this card is replaced by contents of fexec x-011 control card.
+c     the cx011 card is for systems which require additional
+c     fortran statements for files associated with cx010 above.
+c
+cx020    this card is replaced by contents of fexec x-020 control card.
+c     the cx020 card is for overriding the program default i02 = 6
+c     (unit number for printer).
+cx021    this card is replaced by contents of fexec x-021 control card.
+c     the cx021 card is for systems which require additional
+c     fortran statements for files associated with cx020 above.
+c
+      ivpass=0
+      ivfail=0
+      ivdele=0
+      iczero=0
+c
+c     write page headers
+      write (i02,90000)
+      write (i02,90001)
+      write (i02,90002)
+      write (i02, 90002)
+      write (i02,90003)
+      write (i02,90002)
+      write (i02,90004)
+      write (i02,90002)
+      write (i02,90011)
+      write (i02,90002)
+      write (i02,90002)
+      write (i02,90005)
+      write (i02,90006)
+      write (i02,90002)
+c     test section
+c
+c     tests 80 through 84 check the values initialized by the data
+c     statement containing ivon01,..., ivon05.
+c
+  801 continue
+      ivtnum =  80
+c
+c      ****  test 80  ****
+c
+      if (iczero) 30800,  800, 30800
+  800 continue
+      ivcomp = ivon01
+      go to 40800
+30800 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40800,  811, 40800
+40800 if (ivcomp - 3) 20800, 10800,20800
+10800 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  811
+20800 ivfail = ivfail + 1
+      ivcorr = 3
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  811 continue
+      ivtnum =  81
+c
+c      ****  test 81  ****
+c
+      if (iczero) 30810,  810, 30810
+  810 continue
+      ivcomp = ivon02
+      go to 40810
+30810 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40810,  821, 40810
+40810 if (ivcomp - 76) 20810, 10810, 20810
+10810 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  821
+20810 ivfail = ivfail + 1
+      ivcorr = 76
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  821 continue
+      ivtnum =  82
+c
+c      ****  test 82  ****
+c
+      if (iczero) 30820,  820, 30820
+  820 continue
+      ivcomp = ivon03
+      go to 40820
+30820 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40820,  831, 40820
+40820 if (ivcomp - 587) 20820, 10820, 20820
+10820 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  831
+20820 ivfail = ivfail + 1
+      ivcorr = 587
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  831 continue
+      ivtnum =  83
+c
+c      ****  test 83  ****
+c
+      if (iczero) 30830,  830, 30830
+  830 continue
+      ivcomp =ivon04
+      go to 40830
+30830 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40830,  841, 40830
+40830 if (ivcomp - 9999)  20830, 10830, 20830
+10830 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  841
+20830 ivfail = ivfail + 1
+      ivcorr = 9999
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  841 continue
+      ivtnum =  84
+c
+c      ****  test 84  ****
+c
+      if (iczero) 30840,  840, 30840
+  840 continue
+      ivcomp = ivon05
+      go to 40840
+30840 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40840,  851, 40840
+40840 if (ivcomp - 21111) 20840, 10840, 20840
+10840 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  851
+20840 ivfail = ivfail + 1
+      ivcorr = 21111
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+c
+c        tests 85 through 89 check the values initialized by the data
+c     statement containing ivon06,...,ivon10.
+c
+  851 continue
+      ivtnum =  85
+c
+c      ****  test 85  ****
+c
+      if (iczero) 30850,  850, 30850
+  850 continue
+      ivcomp=ivon06
+      go to 40850
+30850 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40850,  861, 40850
+40850 if (ivcomp - 3) 20850, 10850, 20850
+10850 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  861
+20850 ivfail = ivfail + 1
+      ivcorr = 3
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  861 continue
+      ivtnum =  86
+c
+c      ****  test 86  ****
+c
+      if (iczero) 30860,  860, 30860
+  860 continue
+      ivcomp = ivon07
+      go to 40860
+30860 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40860,  871, 40860
+40860 if (ivcomp - 76) 20860, 10860, 20860
+10860 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  871
+20860 ivfail = ivfail + 1
+      ivcorr = 76
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  871 continue
+      ivtnum =  87
+c
+c      ****  test 87  ****
+c
+      if (iczero) 30870,  870, 30870
+  870 continue
+      ivcomp = ivon08
+      go to 40870
+30870 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40870,  881, 40870
+40870 if (ivcomp - 587) 20870, 10870, 20870
+10870 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  881
+20870 ivfail = ivfail + 1
+      ivcorr = 587
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  881 continue
+      ivtnum =  88
+c
+c      ****  test 88  ****
+c
+      if (iczero) 30880,  880, 30880
+  880 continue
+      ivcomp = ivon09
+      go to 40880
+30880 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40880,  891, 40880
+40880 if (ivcomp - 9999) 20880, 10880, 20880
+10880 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  891
+20880 ivfail = ivfail + 1
+      ivcorr = 9999
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  891 continue
+      ivtnum =  89
+c
+c      ****  test 89  ****
+c
+      if (iczero) 30890,  890, 30890
+  890 continue
+      ivcomp = ivon10
+      go to 40890
+30890 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40890,  901, 40890
+40890 if (ivcomp - 21111)  20890, 10890, 20890
+10890 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  901
+20890 ivfail = ivfail + 1
+      ivcorr= 21111
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+c
+c         tests 90 through 94 check the values initialized by the data
+c     statement containing ivon11,...,ivon15.
+c
+  901 continue
+      ivtnum =  90
+c
+c      ****  test 90  ****
+c
+      if (iczero) 30900,  900, 30900
+  900 continue
+      ivcomp = ivon11
+      go to 40900
+30900 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40900,  911, 40900
+40900 if (ivcomp + 3) 20900, 10900, 20900
+10900 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  911
+20900 ivfail = ivfail + 1
+      ivcorr = -3
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  911 continue
+      ivtnum =  91
+c
+c      ****  test 91  ****
+c
+      if (iczero) 30910,  910, 30910
+  910 continue
+      ivcomp = ivon12
+      go to 40910
+30910 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40910,  921, 40910
+40910 if (ivcomp + 76) 20910, 10910, 20910
+10910 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  921
+20910 ivfail = ivfail + 1
+      ivcorr = -76
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  921 continue
+      ivtnum =  92
+c
+c      ****  test 92  ****
+c
+      if (iczero) 30920,  920, 30920
+  920 continue
+      ivcomp= ivon13
+      go to 40920
+30920 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40920,  931, 40920
+40920 if (ivcomp + 587) 20920, 10920, 20920
+10920 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  931
+20920 ivfail = ivfail + 1
+      ivcorr = -587
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  931 continue
+      ivtnum =  93
+c
+c      ****  test 93  ****
+c
+      if (iczero) 30930,  930, 30930
+  930 continue
+      ivcomp = ivon14
+      go to 40930
+30930 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40930,  941, 40930
+40930 if (ivcomp + 9999) 20930, 10930, 20930
+10930 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  941
+20930 ivfail = ivfail + 1
+      ivcorr = -9999
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  941 continue
+      ivtnum =  94
+c
+c      ****  test 94  ****
+c
+      if (iczero) 30940,  940, 30940
+  940 continue
+      ivcomp = ivon15
+      go to 40940
+30940 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40940,  951, 40940
+40940 if (ivcomp + 21111) 20940, 10940, 20940
+10940 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  951
+20940 ivfail = ivfail + 1
+      ivcorr = -21111
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+c
+c         tests 95 through 99 check the values initialized by the data
+c     statement containing ivon16,...,ivon20.
+c
+  951 continue
+      ivtnum =  95
+c
+c      ****  test 95  ****
+c
+      if (iczero) 30950,  950, 30950
+  950 continue
+      ivcomp =ivon16
+      go to 40950
+30950 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40950,  961, 40950
+40950 if (ivcomp - 119) 20950, 10950, 20950
+10950 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  961
+20950 ivfail = ivfail + 1
+      ivcorr = 119
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  961 continue
+      ivtnum =  96
+c
+c      ****  test 96  ****
+c
+      if (iczero) 30960,  960, 30960
+  960 continue
+      ivcomp=ivon17
+      go to 40960
+30960 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40960,  971, 40960
+40960 if (ivcomp - 119) 20960, 10960, 20960
+10960 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  971
+20960 ivfail = ivfail + 1
+      ivcorr = 119
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  971 continue
+      ivtnum =  97
+c
+c      ****  test 97  ****
+c
+      if (iczero) 30970,  970, 30970
+  970 continue
+      ivcomp = ivon18
+      go to 40970
+30970 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40970,  981, 40970
+40970 if (ivcomp - 7) 20970, 10970, 20970
+10970 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  981
+20970 ivfail = ivfail + 1
+      ivcorr = 7
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  981 continue
+      ivtnum =  98
+c
+c      ****  test 98  ****
+c
+      if (iczero) 30980,  980, 30980
+  980 continue
+      ivcomp = ivon19
+      go to 40980
+30980 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40980,  991, 40980
+40980 if (ivcomp - 7) 20980, 10980, 20980
+10980 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to  991
+20980 ivfail = ivfail + 1
+      ivcorr = 7
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+  991 continue
+      ivtnum =  99
+c
+c      ****  test 99  ****
+c
+      if (iczero) 30990,  990, 30990
+  990 continue
+      ivcomp = ivon20
+      go to 40990
+30990 ivdele = ivdele + 1
+      write (i02,80003) ivtnum
+      if (iczero) 40990, 1001, 40990
+40990 if (ivcomp + 427)  20990,10990,20990
+10990 ivpass = ivpass + 1
+      write (i02,80001) ivtnum
+      go to 1001
+20990 ivfail = ivfail + 1
+      ivcorr = -427
+      write (i02,80004) ivtnum, ivcomp ,ivcorr
+ 1001 continue
+c
+c     write page footings and run summaries
+99999 continue
+      write (i02,90002)
+      write (i02,90006)
+      write (i02,90002)
+      write (i02,90002)
+      write (i02,90007)
+      write (i02,90002)
+      write (i02,90008)  ivfail
+      write (i02,90009) ivpass
+      write (i02,90010) ivdele
+c
+c
+c     terminate routine execution
+      stop
+c
+c     format statements for page headers
+90000 format (1h1)
+90002 format (1h )
+90001 format (1h ,10x,34hfortran compiler validation system)
+90003 format (1h ,21x,11hversion 1.0)
+90004 format (1h ,10x,38hfor official use only - copyright 1978)
+90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
+90006 format (1h ,5x,46h----------------------------------------------)
+90011 format (1h ,18x,17hsubset level test)
+c
+c     format statements for run summaries
+90008 format (1h ,15x,i5,19h errors encountered)
+90009 format (1h ,15x,i5,13h tests passed)
+90010 format (1h ,15x,i5,14h tests deleted)
+c
+c     format statements for test results
+80001 format (1h ,4x,i5,7x,4hpass)
+80002 format (1h ,4x,i5,7x,4hfail)
+80003 format (1h ,4x,i5,7x,7hdeleted)
+80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
+80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
+c
+90007 format (1h ,20x,20hend of program fm007)
+      end