4.4BSD/usr/src/usr.bin/f77/tests/tests/fm098.f

c     comment section
c
c     fm098
c
c     this routine tests intrinsic functions where the function type is
c     integer and the arguments are either integer or real.  the real
c     and integer variables and the real and integer constants contain
c     both positive and negative values.  the intrinsic functions tested
c     by fm098 include
c                                                     type of
c       intrinsic function          name       argument     function
c       ------------------          ----       --------     --------
c         absolute value            iabs       integer      integer
c         truncation                int        real         integer
c         remaindering              mod        integer      integer
c         choosing largest value    max0       integer      integer
c                                   max1       real         integer
c         choosing smallest value   min0       integer      integer
c                                   min1       real         integer
c         fix                       ifix      real          integer
c         transfer of sign          isign     integer       integer
c         positive difference       idim      integer       integer
c
c      references
c        american national standard programming language fortran,
c              x3.9-1978
c
c        section 4.1.2, type rules for data and procedure identifiers
c        section 15.3, intrinsic function
c        section 15.3.2, intrinsic functions and their reference
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
c     test section
c
c     test 907 through test 909 contain intrinsic function tests for
c     absolute value where argument and function are integer
c
 9071 continue
      ivtnum = 907
c
c      ****  test 907  ****
c
      if (iczero) 39070, 9070, 39070
 9070 continue
      ivcomp = iabs (-382)
      go to 49070
39070 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49070, 9081, 49070
49070 if (ivcomp - 382) 29070,19070,29070
19070 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9081
29070 ivfail = ivfail + 1
      ivcorr = 382
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9081 continue
      ivtnum = 908
c
c      ****  test 908  ****
c
      if (iczero) 39080, 9080, 39080
 9080 continue
      ivon01 = 445
      ivcomp = iabs (ivon01)
      go to 49080
39080 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49080, 9091, 49080
49080 if (ivcomp - 445) 29080,19080,29080
19080 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9091
29080 ivfail = ivfail + 1
      ivcorr = 445
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9091 continue
      ivtnum = 909
c
c      ****  test 909  ****
c
      if (iczero) 39090, 9090, 39090
 9090 continue
      ivon01 = -32176
      ivcomp = iabs (ivon01)
      go to 49090
39090 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49090, 9101, 49090
49090 if (ivcomp - 32176) 29090,19090,29090
19090 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9101
29090 ivfail = ivfail + 1
      ivcorr = 32176
      write (i02,80004) ivtnum, ivcomp, ivcorr
c
c     test 910 through test 913 contain intrinsic function tests for
c     truncation where argument is real and function is integer
c
 9101 continue
      ivtnum = 910
c
c      ****  test 910  ****
c
      if (iczero) 39100, 9100, 39100
 9100 continue
      ivcomp = int (38.2)
      go to 49100
39100 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49100, 9111, 49100
49100 if (ivcomp - 38) 29100,19100,29100
19100 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9111
29100 ivfail = ivfail + 1
      ivcorr = 38
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9111 continue
      ivtnum = 911
c
c      ****  test 911  ****
c
      if (iczero) 39110, 9110, 39110
 9110 continue
      rvon01 = -445.95
      ivcomp = int (rvon01)
      go to 49110
39110 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49110, 9121, 49110
49110 if (ivcomp + 445) 29110,19110,29110
19110 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9121
29110 ivfail = ivfail + 1
      ivcorr = -445
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9121 continue
      ivtnum = 912
c
c      ****  test 912  ****
c
      if (iczero) 39120, 9120, 39120
 9120 continue
      rvon01 = 466.01
      ivcomp = int (rvon01)
      go to 49120
39120 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49120, 9131, 49120
49120 if (ivcomp - 466) 29120,19120,29120
19120 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9131
29120 ivfail = ivfail + 1
      ivcorr = 466
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9131 continue
      ivtnum = 913
c
c      ****  test 913  ****
c
      if (iczero) 39130, 9130, 39130
 9130 continue
      rvon01 = 382e-1
      ivcomp = int (rvon01)
      go to 49130
39130 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49130, 9141, 49130
49130 if (ivcomp - 38) 29130,19130,29130
19130 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9141
29130 ivfail = ivfail + 1
      ivcorr = 38
      write (i02,80004) ivtnum, ivcomp, ivcorr
c
c     test 914 through test 917 contain intrinsic function tests for
c     remaindering where arguments and function are integers
c
 9141 continue
      ivtnum = 914
c
c      ****  test 914  ****
c
      if (iczero) 39140, 9140, 39140
 9140 continue
      ivcomp = mod (42,19)
      go to 49140
39140 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49140, 9151, 49140
49140 if (ivcomp - 4) 29140,19140,29140
19140 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9151
29140 ivfail = ivfail + 1
      ivcorr = 4
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9151 continue
      ivtnum = 915
c
c      ****  test 915  ****
c
      if (iczero) 39150, 9150, 39150
 9150 continue
      ivon01 = 6667
      ivon02 = 2
      ivcomp = mod (ivon01,ivon02)
      go to 49150
39150 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49150, 9161, 49150
49150 if (ivcomp - 1) 29150,19150,29150
19150 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9161
29150 ivfail = ivfail + 1
      ivcorr = 1
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9161 continue
      ivtnum = 916
c
c      ****  test 916  ****
c
      if (iczero) 39160, 9160, 39160
 9160 continue
      ivon01 = 225
      ivon02 = 50
      ivcomp = mod (ivon01,ivon02)
      go to 49160
39160 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49160, 9171, 49160
49160 if (ivcomp - 25) 29160,19160,29160
19160 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9171
29160 ivfail = ivfail + 1
      ivcorr = 25
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9171 continue
      ivtnum = 917
c
c      ****  test 917  ****
c
      if (iczero) 39170, 9170, 39170
 9170 continue
      ivon01 = -39
      ivon02 = 500
      ivcomp = mod (ivon01,ivon02)
      go to 49170
39170 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49170, 9181, 49170
49170 if (ivcomp + 39) 29170,19170,29170
19170 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9181
29170 ivfail = ivfail + 1
      ivcorr = -39
      write (i02,80004) ivtnum, ivcomp, ivcorr
c
c     test 918 and 919 contain intrinsic function tests for choosing
c     largest value where arguments and function are integer
c
 9181 continue
      ivtnum = 918
c
c      ****  test 918  ****
c
      if (iczero) 39180, 9180, 39180
 9180 continue
      ivon01 = 317
      ivon02 = -99
      ivon03 = 1
      ivcomp = max0 (263,ivon01,ivon02,ivon03)
      go to 49180
39180 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49180, 9191, 49180
49180 if (ivcomp - 317) 29180,19180,29180
19180 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9191
29180 ivfail = ivfail + 1
      ivcorr = 317
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9191 continue
      ivtnum = 919
c
c      ****  test 919  ****
c
      if (iczero) 39190, 9190, 39190
 9190 continue
      ivon01 = 2572
      ivon02 = 2570
      ivcomp = max0 (ivon01,ivon02)
      go to 49190
39190 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49190, 9201, 49190
49190 if (ivcomp - 2572) 29190,19190,29190
19190 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9201
29190 ivfail = ivfail + 1
      ivcorr = 2572
      write (i02,80004) ivtnum, ivcomp, ivcorr
c
c     test 920 and 921 contain intrinsic function tests for choosing
c     largest value where arguments are real and function is integer
c
 9201 continue
      ivtnum = 920
c
c      ****  test 920  ****
c
      if (iczero) 39200, 9200, 39200
 9200 continue
      rvon01 = .326e+2
      rvon02 = 22.075
      rvon03 = 76e-1
      ivcomp = max1 (rvon01,rvon02,rvon03)
      go to 49200
39200 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49200, 9211, 49200
49200 if (ivcomp - 32) 29200,19200,29200
19200 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9211
29200 ivfail = ivfail + 1
      ivcorr = 32
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9211 continue
      ivtnum = 921
c
c      ****  test 921  ****
c
      if (iczero) 39210, 9210, 39210
 9210 continue
      rvon01 = -6.3e2
      rvon02 = -21.0
      ivcomp = max1 (-463.3,rvon01,rvon02)
      go to 49210
39210 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49210, 9221, 49210
49210 if (ivcomp + 21) 29210,19210,29210
19210 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9221
29210 ivfail = ivfail + 1
      ivcorr = -21
      write (i02,80004) ivtnum, ivcomp, ivcorr
c
c     test 922 and 923 contain intrinsic function tests for choosing
c     smallest value where arguments and function are integer
c
 9221 continue
      ivtnum = 922
c
c      ****  test 922  ****
c
      if (iczero) 39220, 9220, 39220
 9220 continue
      ivon01 = -75
      ivon02 = -243
      ivcomp = min0 (ivon01,ivon02)
      go to 49220
39220 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49220, 9231, 49220
49220 if (ivcomp + 243) 29220,19220,29220
19220 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9231
29220 ivfail = ivfail + 1
      ivcorr = -243
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9231 continue
      ivtnum = 923
c
c      ****  test 923  ****
c
      if (iczero) 39230, 9230, 39230
 9230 continue
      ivon01 = -11
      ivon02 = 11
      ivcomp = min0 (0,ivon01,ivon02)
      go to 49230
39230 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49230, 9241, 49230
49230 if (ivcomp + 11) 29230,19230,29230
19230 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9241
29230 ivfail = ivfail + 1
      ivcorr = -11
      write (i02,80004) ivtnum, ivcomp, ivcorr
c
c     test 924 and 925 contain intrinsic function tests for choosing
c     smallest value where arguments are real and function is integer
c
 9241 continue
      ivtnum = 924
c
c      ****  test 924  ****
c
      if (iczero) 39240, 9240, 39240
 9240 continue
      rvon01 = 1.1111
      rvon02 = 22.222
      rvon03 = 333.33
      ivcomp = min1 (rvon01,rvon02,rvon03)
      go to 49240
39240 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49240, 9251, 49240
49240 if (ivcomp - 1) 29240,19240,29240
19240 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9251
29240 ivfail = ivfail + 1
      ivcorr = 1
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9251 continue
      ivtnum = 925
c
c      ****  test 925  ****
c
      if (iczero) 39250, 9250, 39250
 9250 continue
      rvon01 = 28.8
      rvon02 = 2.88e1
      rvon03 = 288e-1
      rvon04 = 35.0
      ivcomp = min1 (rvon01,rvon02,rvon03,rvon04)
      go to 49250
39250 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49250, 9261, 49250
49250 if (ivcomp - 28) 29250,19250,29250
19250 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9261
29250 ivfail = ivfail + 1
      ivcorr = 28
      write (i02,80004) ivtnum, ivcomp, ivcorr
c
c     test 926 through test 929 contain the intrinsic function fix
c     which converts real arguments to integer function results
c
 9261 continue
      ivtnum = 926
c
c      ****  test 926  ****
c
      if (iczero) 39260, 9260, 39260
 9260 continue
      ivcomp = ifix (-6.06)
      go to 49260
39260 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49260, 9271, 49260
49260 if (ivcomp + 6) 29260,19260,29260
19260 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9271
29260 ivfail = ivfail + 1
      ivcorr = -6
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9271 continue
      ivtnum = 927
c
c      ****  test 927  ****
c
      if (iczero) 39270, 9270, 39270
 9270 continue
      rvon01 = 71.01
      ivcomp = ifix (rvon01)
      go to 49270
39270 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49270, 9281, 49270
49270 if (ivcomp - 71) 29270,19270,29270
19270 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9281
29270 ivfail = ivfail + 1
      ivcorr = 71
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9281 continue
      ivtnum = 928
c
c      ****  test 928  ****
c
      if (iczero) 39280, 9280, 39280
 9280 continue
      rvon01 = 3.211e2
      ivcomp = ifix (rvon01)
      go to 49280
39280 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49280, 9291, 49280
49280 if (ivcomp - 321) 29280,19280,29280
19280 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9291
29280 ivfail = ivfail + 1
      ivcorr = 321
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9291 continue
      ivtnum = 929
c
c      ****  test 929  ****
c
      if (iczero) 39290, 9290, 39290
 9290 continue
      rvon01 = 777e-1
      ivcomp = ifix (rvon01)
      go to 49290
39290 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49290, 9301, 49290
49290 if (ivcomp - 77) 29290,19290,29290
19290 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9301
29290 ivfail = ivfail + 1
      ivcorr = 77
      write (i02,80004) ivtnum, ivcomp, ivcorr
c
c     test 930 through test 932 contain intrinsic function tests for
c     transfer of sign where arguments and function are integer
c
 9301 continue
      ivtnum = 930
c
c      ****  test 930  ****
c
      if (iczero) 39300, 9300, 39300
 9300 continue
      ivon01 = 643
      ivcomp = isign (ivon01,-1)
      go to 49300
39300 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49300, 9311, 49300
49300 if (ivcomp + 643) 29300,19300,29300
19300 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9311
29300 ivfail = ivfail + 1
      ivcorr = -643
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9311 continue
      ivtnum = 931
c
c      ****  test 931  ****
c
      if (iczero) 39310, 9310, 39310
 9310 continue
      ivon01 = -22
      ivon02 = 723
      ivcomp = isign (ivon01,ivon02)
      go to 49310
39310 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49310, 9321, 49310
49310 if (ivcomp - 22) 29310,19310,29310
19310 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9321
29310 ivfail = ivfail + 1
      ivcorr = 22
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9321 continue
      ivtnum = 932
c
c      ****  test 932  ****
c
      if (iczero) 39320, 9320, 39320
 9320 continue
      ivon01 = 3532
      ivon02 = 1
      ivcomp = isign (ivon01,ivon02)
      go to 49320
39320 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49320, 9331, 49320
49320 if (ivcomp - 3532) 29320,19320,29320
19320 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9331
29320 ivfail = ivfail + 1
      ivcorr = 3532
      write (i02,80004) ivtnum, ivcomp, ivcorr
c
c     test 933 through test 936 contain intrinsic function tests for
c     positive difference where arguments and function are integers
c
 9331 continue
      ivtnum = 933
c
c      ****  test 933  ****
c
      if (iczero) 39330, 9330, 39330
 9330 continue
      ivon01 = 222
      ivcomp = idim (ivon01,1)
      go to 49330
39330 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49330, 9341, 49330
49330 if (ivcomp - 221) 29330,19330,29330
19330 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9341
29330 ivfail = ivfail + 1
      ivcorr = 221
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9341 continue
      ivtnum = 934
c
c      ****  test 934  ****
c
      if (iczero) 39340, 9340, 39340
 9340 continue
      ivon01 = 45
      ivon02 = 41
      ivcomp = idim (ivon01,ivon02)
      go to 49340
39340 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49340, 9351, 49340
49340 if (ivcomp - 4) 29340,19340,29340
19340 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9351
29340 ivfail = ivfail + 1
      ivcorr = 4
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9351 continue
      ivtnum = 935
c
c      ****  test 935  ****
c
      if (iczero) 39350, 9350, 39350
 9350 continue
      ivon01 = 2
      ivon02 = 10
      ivcomp = idim (ivon01,ivon02)
      go to 49350
39350 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49350, 9361, 49350
49350 if (ivcomp) 29350,19350,29350
19350 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9361
29350 ivfail = ivfail + 1
      ivcorr = 0
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9361 continue
      ivtnum = 936
c
c      ****  test 936  ****
c
      if (iczero) 39360, 9360, 39360
 9360 continue
      ivon01 = 165
      ivon02 = -2
      ivcomp = idim (ivon01,ivon02)
      go to 49360
39360 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49360, 9371, 49360
49360 if (ivcomp - 167) 29360,19360,29360
19360 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9371
29360 ivfail = ivfail + 1
      ivcorr = 167
      write (i02,80004) ivtnum, ivcomp, ivcorr
c
c     tests 937 and 938 contain expressions containing more than one
c     intrinsic function - the functions are integer and the arguments
c     are real and integer
c
 9371 continue
      ivtnum = 937
c
c      ****  test 937  ****
c
      if (iczero) 39370, 9370, 39370
 9370 continue
      rvon01 = 33.3
      ivon01 = -12
      ivcomp = int (rvon01) + iabs (ivon01)
      go to 49370
39370 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49370, 9381, 49370
49370 if (ivcomp -  45) 29370,19370,29370
19370 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9381
29370 ivfail = ivfail + 1
      ivcorr = 45
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9381 continue
      ivtnum = 938
c
c      ****  test 938  ****
c
      if (iczero) 39380, 9380, 39380
 9380 continue
      ivon01 = 76
      ivon02 = 21
      ivon03 = 30
      ivcomp = max0 (ivon01,ivon02,ivon03) - min0 (ivon01,ivon02,ivon03)
      go to 49380
39380 ivdele = ivdele + 1
      write (i02,80003) ivtnum
      if (iczero) 49380, 9391, 49380
49380 if (ivcomp - 55) 29380,19380,29380
19380 ivpass = ivpass + 1
      write (i02,80001) ivtnum
      go to 9391
29380 ivfail = ivfail + 1
      ivcorr = 55
      write (i02,80004) ivtnum, ivcomp, ivcorr
 9391 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 fm098)
      end