Annotation of 43BSDTahoe/usr.bin/f77/testf77/tests/fm097.f, revision 1.1.1.1

1.1       root        1: c     comment section
                      2: c
                      3: c     fm097
                      4: c
                      5: c     this routine tests intrinsic functions where the function type is
                      6: c     real and the arguments are either integer or real.  the real and
                      7: c     integer variables and the real and integer constants contain both
                      8: c     positive and negative values.  the intrinsic functions tested by
                      9: c     fm097 include
                     10: c                                                   type of
                     11: c       intrinsic function          name       argument     function
                     12: c       ------------------          ----       --------     --------
                     13: c         absolute value            abs        real         real
                     14: c         truncation                aint       real         real
                     15: c         remaindering              amod       real         real
                     16: c         choosing largest value    amax0      integer      real
                     17: c                                   amax1      real         real
                     18: c         choosing smallest value   amin0     integer       real
                     19: c                                   amin1      real         real
                     20: c         float                     float      integer      real
                     21: c         transfer of sign          sign       real         real
                     22: c         positive difference       dim        real         real
                     23: c
                     24: c      references
                     25: c        american national standard programming language fortran,
                     26: c              x3.9-1978
                     27: c
                     28: c        section 4.1.2, type rules for data and procedure identifiers
                     29: c        section 15.3, intrinsic function
                     30: c        section 15.3.2, intrinsic functions and their reference
                     31: c
                     32: c
                     33: c      **********************************************************
                     34: c
                     35: c         a compiler validation system for the fortran language
                     36: c     based on specifications as defined in american national standard
                     37: c     programming language fortran x3.9-1978, has been developed by the
                     38: c     federal cobol compiler testing service.  the fortran compiler
                     39: c     validation system (fcvs) consists of audit routines, their related
                     40: c     data, and an executive system.  each audit routine is a fortran
                     41: c     program, subprogram or function which includes tests of specific
                     42: c     language elements and supporting procedures indicating the result
                     43: c     of executing these tests.
                     44: c
                     45: c         this particular program/subprogram/function contains features
                     46: c     found only in the subset as defined in x3.9-1978.
                     47: c
                     48: c         suggestions and comments should be forwarded to -
                     49: c
                     50: c                  department of the navy
                     51: c                  federal cobol compiler testing service
                     52: c                  washington, d.c.  20376
                     53: c
                     54: c      **********************************************************
                     55: c
                     56: c
                     57: c
                     58: c     initialization section
                     59: c
                     60: c     initialize constants
                     61: c      **************
                     62: c     i01 contains the logical unit number for the card reader.
                     63:       i01 = 5
                     64: c     i02 contains the logical unit number for the printer.
                     65:       i02 = 6
                     66: c     system environment section
                     67: c
                     68: cx010    this card is replaced by contents of fexec x-010 control card.
                     69: c     the cx010 card is for overriding the program default i01 = 5
                     70: c     (unit number for card reader).
                     71: cx011    this card is replaced by contents of fexec x-011 control card.
                     72: c     the cx011 card is for systems which require additional
                     73: c     fortran statements for files associated with cx010 above.
                     74: c
                     75: cx020    this card is replaced by contents of fexec x-020 control card.
                     76: c     the cx020 card is for overriding the program default i02 = 6
                     77: c     (unit number for printer).
                     78: cx021    this card is replaced by contents of fexec x-021 control card.
                     79: c     the cx021 card is for systems which require additional
                     80: c     fortran statements for files associated with cx020 above.
                     81: c
                     82:       ivpass=0
                     83:       ivfail=0
                     84:       ivdele=0
                     85:       iczero=0
                     86: c
                     87: c     write page headers
                     88:       write (i02,90000)
                     89:       write (i02,90001)
                     90:       write (i02,90002)
                     91:       write (i02, 90002)
                     92:       write (i02,90003)
                     93:       write (i02,90002)
                     94:       write (i02,90004)
                     95:       write (i02,90002)
                     96:       write (i02,90011)
                     97:       write (i02,90002)
                     98:       write (i02,90002)
                     99:       write (i02,90005)
                    100:       write (i02,90006)
                    101:       write (i02,90002)
                    102: c
                    103: c     test section
                    104: c
                    105: c     test 875 through test 878 contain intrinsic function tests for
                    106: c     absolute value where argument and function are real
                    107: c
                    108:       ivtnum = 875
                    109: c
                    110: c      ****  test 875  ****
                    111: c
                    112:       if (iczero) 38750, 8750, 38750
                    113:  8750 continue
                    114:       rvcomp = abs (-38.2)
                    115:       go to 48750
                    116: 38750 ivdele = ivdele + 1
                    117:       write (i02,80003) ivtnum
                    118:       if (iczero) 48750, 8761, 48750
                    119: 48750 if (rvcomp - 38.195) 28750,18750,48751
                    120: 48751 if (rvcomp - 38.205) 18750,18750,28750
                    121: 18750 ivpass = ivpass + 1
                    122:       write (i02,80001) ivtnum
                    123:       go to 8761
                    124: 28750 ivfail = ivfail + 1
                    125:       rvcorr = 38.200
                    126:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    127:  8761 continue
                    128:       ivtnum = 876
                    129: c
                    130: c      ****  test 876  ****
                    131: c
                    132:       if (iczero) 38760, 8760, 38760
                    133:  8760 continue
                    134:       rvon01 = 445.06
                    135:       rvcomp = abs (rvon01)
                    136:       go to 48760
                    137: 38760 ivdele = ivdele + 1
                    138:       write (i02,80003) ivtnum
                    139:       if (iczero) 48760, 8771, 48760
                    140: 48760 if (rvcomp - 445.01) 28760,18760,48761
                    141: 48761 if (rvcomp - 445.11) 18760,18760,28760
                    142: 18760 ivpass = ivpass + 1
                    143:       write (i02,80001) ivtnum
                    144:       go to 8771
                    145: 28760 ivfail = ivfail + 1
                    146:       rvcorr = 445.06
                    147:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    148:  8771 continue
                    149:       ivtnum = 877
                    150: c
                    151: c      ****  test 877  ****
                    152: c
                    153:       if (iczero) 38770, 8770, 38770
                    154:  8770 continue
                    155:       rvon01 = -32.176
                    156:       rvcomp = abs (rvon01)
                    157:       go to 48770
                    158: 38770 ivdele = ivdele + 1
                    159:       write (i02,80003) ivtnum
                    160:       if (iczero) 48770, 8781, 48770
                    161: 48770 if (rvcomp - 32.171) 28770,18770,48771
                    162: 48771 if (rvcomp - 32.181) 18770,18770,28770
                    163: 18770 ivpass = ivpass + 1
                    164:       write (i02,80001) ivtnum
                    165:       go to 8781
                    166: 28770 ivfail = ivfail + 1
                    167:       rvcorr = 32.176
                    168:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    169:  8781 continue
                    170:       ivtnum = 878
                    171: c
                    172: c      ****  test 878  ****
                    173: c
                    174:       if (iczero) 38780, 8780, 38780
                    175:  8780 continue
                    176:       rvon01 = -2.2e+2
                    177:       rvcomp = abs (rvon01)
                    178:       go to 48780
                    179: 38780 ivdele = ivdele + 1
                    180:       write (i02,80003) ivtnum
                    181:       if (iczero) 48780, 8791, 48780
                    182: 48780 if (rvcomp - 219.95) 28780,18780,48781
                    183: 48781 if (rvcomp - 220.05) 18780,18780,28780
                    184: 18780 ivpass = ivpass + 1
                    185:       write (i02,80001) ivtnum
                    186:       go to 8791
                    187: 28780 ivfail = ivfail + 1
                    188:       rvcorr = 220.00
                    189:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    190:  8791 continue
                    191:       ivtnum = 879
                    192: c
                    193: c      ****  test 879  ****
                    194: c
                    195: c     test 879 through test 882 contain intrinsic function tests for
                    196: c     truncation where argument and function are real
                    197: c
                    198: c
                    199:       if (iczero) 38790, 8790, 38790
                    200:  8790 continue
                    201:       rvcomp = aint (38.2)
                    202:       go to 48790
                    203: 38790 ivdele = ivdele + 1
                    204:       write (i02,80003) ivtnum
                    205:       if (iczero) 48790, 8801, 48790
                    206: 48790 if (rvcomp - 37.995) 28790,18790,48791
                    207: 48791 if (rvcomp - 38.005) 18790,18790,28790
                    208: 18790 ivpass = ivpass + 1
                    209:       write (i02,80001) ivtnum
                    210:       go to 8801
                    211: 28790 ivfail = ivfail + 1
                    212:       rvcorr = 38.000
                    213:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    214:  8801 continue
                    215:       ivtnum = 880
                    216: c
                    217: c      ****  test 880  ****
                    218: c
                    219:       if (iczero) 38800, 8800, 38800
                    220:  8800 continue
                    221:       rvon01 = -445.95
                    222:       rvcomp = aint (rvon01)
                    223:       go to 48800
                    224: 38800 ivdele = ivdele + 1
                    225:       write (i02,80003) ivtnum
                    226:       if (iczero) 48800, 8811, 48800
                    227: 48800 if (rvcomp + 445.05) 28800,18800,48801
                    228: 48801 if (rvcomp + 444.95) 18800,18800,28800
                    229: 18800 ivpass = ivpass + 1
                    230:       write (i02,80001) ivtnum
                    231:       go to 8811
                    232: 28800 ivfail = ivfail + 1
                    233:       rvcorr = -445.00
                    234:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    235:  8811 continue
                    236:       ivtnum = 881
                    237: c
                    238: c      ****  test 881  ****
                    239: c
                    240:       if (iczero) 38810, 8810, 38810
                    241:  8810 continue
                    242:       rvon01 = 466.01
                    243:       rvcomp = aint (rvon01)
                    244:       go to 48810
                    245: 38810 ivdele = ivdele + 1
                    246:       write (i02,80003) ivtnum
                    247:       if (iczero) 48810, 8821, 48810
                    248: 48810 if (rvcomp - 465.95) 28810,18810,48811
                    249: 48811 if (rvcomp - 466.05) 18810,18810,28810
                    250: 18810 ivpass = ivpass + 1
                    251:       write (i02,80001) ivtnum
                    252:       go to 8821
                    253: 28810 ivfail = ivfail + 1
                    254:       rvcomp = 466.00
                    255:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    256:  8821 continue
                    257:       ivtnum = 882
                    258: c
                    259: c      ****  test 882  ****
                    260: c
                    261:       if (iczero) 38820, 8820, 38820
                    262:  8820 continue
                    263:       rvon01 = 382e-1
                    264:       rvcomp = aint (rvon01)
                    265:       go to 48820
                    266: 38820 ivdele = ivdele + 1
                    267:       write (i02,80003) ivtnum
                    268:       if (iczero) 48820, 8831, 48820
                    269: 48820 if (rvcomp - 37.995) 28820,18820,48821
                    270: 48821 if (rvcomp - 38.005) 18820,18820,28820
                    271: 18820 ivpass = ivpass + 1
                    272:       write (i02,80001) ivtnum
                    273:       go to 8831
                    274: 28820 ivfail = ivfail + 1
                    275:       rvcorr = 38.000
                    276:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    277:  8831 continue
                    278: c
                    279: c     test 883 through 886 contain intrinsic function tests for
                    280: c     remaindering where argument and function are real
                    281: c
                    282:       ivtnum = 883
                    283: c
                    284: c      ****  test 883  ****
                    285: c
                    286:       if (iczero) 38830, 8830, 38830
                    287:  8830 continue
                    288:       rvcomp = amod (42.0,19.0)
                    289:       go to 48830
                    290: 38830 ivdele = ivdele + 1
                    291:       write (i02,80003) ivtnum
                    292:       if (iczero) 48830, 8841, 48830
                    293: 48830 if (rvcomp - 3.9995) 28830,18830,48831
                    294: 48831 if (rvcomp - 4.0005) 18830,18830,28830
                    295: 18830 ivpass = ivpass + 1
                    296:       write (i02,80001) ivtnum
                    297:       go to 8841
                    298: 28830 ivfail = ivfail + 1
                    299:       rvcorr = 4.0000
                    300:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    301:  8841 continue
                    302:       ivtnum = 884
                    303: c
                    304: c      ****  test 884  ****
                    305: c
                    306:       if (iczero) 38840, 8840, 38840
                    307:  8840 continue
                    308:       rvon01 = 16.27
                    309:       rvon02 = 2.0
                    310:       rvcomp = amod (rvon01,rvon02)
                    311:       go to 48840
                    312: 38840 ivdele = ivdele + 1
                    313:       write (i02,80003) ivtnum
                    314:       if (iczero) 48840, 8851, 48840
                    315: 48840 if (rvcomp - .26995) 28840,18840,48841
                    316: 48841 if (rvcomp - .27005) 18840,18840,28840
                    317: 18840 ivpass = ivpass + 1
                    318:       write (i02,80001) ivtnum
                    319:       go to 8851
                    320: 28840 ivfail = ivfail + 1
                    321:       rvcorr = .27000
                    322:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    323:  8851 continue
                    324:       ivtnum = 885
                    325: c
                    326: c      ****  test 885  ****
                    327: c
                    328:       if (iczero) 38850, 8850, 38850
                    329:  8850 continue
                    330:       rvon01 = 225.0
                    331:       rvon02 = 5.0e1
                    332:       rvcomp = amod (rvon01,rvon02)
                    333:       go to 48850
                    334: 38850 ivdele = ivdele + 1
                    335:       write (i02,80003) ivtnum
                    336:       if (iczero) 48850, 8861, 48850
                    337: 48850 if (rvcomp - 24.995) 28850,18850,48851
                    338: 48851 if (rvcomp - 25.005) 18850,18850,28850
                    339: 18850 ivpass = ivpass + 1
                    340:       write (i02,80001) ivtnum
                    341:       go to 8861
                    342: 28850 ivfail = ivfail + 1
                    343:       rvcorr = 25.000
                    344:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    345:  8861 continue
                    346:       ivtnum = 886
                    347: c
                    348: c      ****  test 886  ****
                    349: c
                    350:       if (iczero) 38860, 8860, 38860
                    351:  8860 continue
                    352:       rvon01 = -0.390e+2
                    353:       rvon02 = 5e2
                    354:       rvcomp = amod (rvon01,rvon02)
                    355:       go to 48860
                    356: 38860 ivdele = ivdele + 1
                    357:       write (i02,80003) ivtnum
                    358:       if (iczero) 48860, 8871, 48860
                    359: 48860 if (rvcomp + 39.005) 28860,18860,48861
                    360: 48861 if (rvcomp + 38.995) 18860,18860,28860
                    361: 18860 ivpass = ivpass + 1
                    362:       write (i02,80001) ivtnum
                    363:       go to 8871
                    364: 28860 ivfail = ivfail + 1
                    365:       rvcorr = -39.000
                    366:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    367:  8871 continue
                    368: c
                    369: c     test 887 and 888 contain intrinsic function tests for choosing
                    370: c     largest value where arguments are integer and function is real
                    371: c
                    372:       ivtnum = 887
                    373: c
                    374: c      ****  test 887  ****
                    375: c
                    376:       if (iczero) 38870, 8870, 38870
                    377:  8870 continue
                    378:       ivon01 = 317
                    379:       ivon02 = -99
                    380:       ivon03 = 1
                    381:       rvcomp = amax0 (263,ivon01,ivon02,ivon03)
                    382:       go to 48870
                    383: 38870 ivdele = ivdele + 1
                    384:       write (i02,80003) ivtnum
                    385:       if (iczero) 48870, 8881, 48870
                    386: 48870 if (rvcomp - 316.95) 28870,18870,48871
                    387: 48871 if (rvcomp - 317.05) 18870,18870,28870
                    388: 18870 ivpass = ivpass + 1
                    389:       write (i02,80001) ivtnum
                    390:       go to 8881
                    391: 28870 ivfail = ivfail + 1
                    392:       rvcorr = 317.00
                    393:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    394:  8881 continue
                    395:       ivtnum = 888
                    396: c
                    397: c      ****  test 888  ****
                    398: c
                    399:       if (iczero) 38880, 8880, 38880
                    400:  8880 continue
                    401:       ivon01 = 2572
                    402:       ivon02 = 2570
                    403:       rvcomp = amax0 (ivon01,ivon02)
                    404:       go to 48880
                    405: 38880 ivdele = ivdele + 1
                    406:       write (i02,80003) ivtnum
                    407:       if (iczero) 48880, 8891, 48880
                    408: 48880 if (rvcomp - 2571.5) 28880,18880,48881
                    409: 48881 if (rvcomp - 2572.5) 18880,18880,28880
                    410: 18880 ivpass = ivpass + 1
                    411:       write (i02,80001) ivtnum
                    412:       go to 8891
                    413: 28880 ivfail = ivfail + 1
                    414:       rvcorr = 2572.0
                    415:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    416:  8891 continue
                    417: c
                    418: c     test 889 and 890 contain intrinsic function tests for choosing
                    419: c     largest value where the arguments and function are real
                    420: c
                    421:       ivtnum = 889
                    422: c
                    423: c      ****  test 889  ****
                    424: c
                    425:       if (iczero) 38890, 8890, 38890
                    426:  8890 continue
                    427:       rvon01 = .326e+2
                    428:       rvon02 = 22.075
                    429:       rvon03 = 76e-1
                    430:       rvcomp = amax1 (rvon01,rvon02,rvon03)
                    431:       go to 48890
                    432: 38890 ivdele = ivdele + 1
                    433:       write (i02,80003) ivtnum
                    434:       if (iczero) 48890, 8901, 48890
                    435: 48890 if (rvcomp - 32.595) 28890,18890,48891
                    436: 48891 if (rvcomp - 32.605) 18890,18890,28890
                    437: 18890 ivpass = ivpass + 1
                    438:       write (i02,80001) ivtnum
                    439:       go to 8901
                    440: 28890 ivfail = ivfail + 1
                    441:       rvcorr = 32.600
                    442:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    443:  8901 continue
                    444:       ivtnum = 890
                    445: c
                    446: c      ****  test 890  ****
                    447: c
                    448:       if (iczero) 38900, 8900, 38900
                    449:  8900 continue
                    450:       rvon01 = -6.3e2
                    451:       rvon02 = -21.0
                    452:       rvcomp = amax1 (-463.3,rvon01,rvon02)
                    453:       go to 48900
                    454: 38900 ivdele = ivdele + 1
                    455:       write (i02,80003) ivtnum
                    456:       if (iczero) 48900, 8911, 48900
                    457: 48900 if (rvcomp + 21.005) 28900,18900,48901
                    458: 48901 if (rvcomp + 20.995) 18900,18900,28900
                    459: 18900 ivpass = ivpass + 1
                    460:       write (i02,80001) ivtnum
                    461:       go to 8911
                    462: 28900 ivfail = ivfail + 1
                    463:       rvcorr = -21.000
                    464:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    465:  8911 continue
                    466: c
                    467: c     tests 891 and 892 contain intrinsic function tests for choosing
                    468: c     smallest value where arguments are integer and function is real
                    469: c
                    470:       ivtnum = 891
                    471: c
                    472: c      ****  test 891  ****
                    473: c
                    474:       if (iczero) 38910, 8910, 38910
                    475:  8910 continue
                    476:       ivon01 = -75
                    477:       ivon02 = -243
                    478:       rvcomp = amin0 (ivon01,ivon02)
                    479:       go to 48910
                    480: 38910 ivdele = ivdele + 1
                    481:       write (i02,80003) ivtnum
                    482:       if (iczero) 48910, 8921, 48910
                    483: 48910 if (rvcomp + 243.05) 28910,18910,48911
                    484: 48911 if (rvcomp + 242.95) 18910,18910,28910
                    485: 18910 ivpass = ivpass + 1
                    486:       write (i02,80001) ivtnum
                    487:       go to 8921
                    488: 28910 ivfail = ivfail + 1
                    489:       rvcorr = -243.00
                    490:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    491:  8921 continue
                    492:       ivtnum = 892
                    493: c
                    494: c      ****  test 892  ****
                    495: c
                    496:       if (iczero) 38920, 8920, 38920
                    497:  8920 continue
                    498:       ivon01 = -11
                    499:       ivon02 = 11
                    500:       rvcomp = amin0 (0,ivon01,ivon02)
                    501:       go to 48920
                    502: 38920 ivdele = ivdele + 1
                    503:       write (i02,80003) ivtnum
                    504:       if (iczero) 48920, 8931, 48920
                    505: 48920 if (rvcomp + 11.005) 28920,18920,48921
                    506: 48921 if (rvcomp + 10.995) 18920,18920,28920
                    507: 18920 ivpass = ivpass + 1
                    508:       write (i02,80001) ivtnum
                    509:       go to 8931
                    510: 28920 ivfail = ivfail + 1
                    511:       rvcorr = -11.000
                    512:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    513:  8931 continue
                    514: c
                    515: c     tests 893 and 894 contain intrinsic function tests for choosing
                    516: c     smallest value where arguments and function are real
                    517: c
                    518:       ivtnum = 893
                    519: c
                    520: c      ****  test 893  ****
                    521: c
                    522:       if (iczero) 38930, 8930, 38930
                    523:  8930 continue
                    524:       rvon01 = 1.1111
                    525:       rvon02 = 22.222
                    526:       rvon03 = 333.33
                    527:       rvcomp = amin1 (rvon01,rvon02,rvon03)
                    528:       go to 48930
                    529: 38930 ivdele = ivdele + 1
                    530:       write (i02,80003) ivtnum
                    531:       if (iczero) 48930, 8941, 48930
                    532: 48930 if (rvcomp - 1.1106) 28930,18930,48931
                    533: 48931 if (rvcomp - 1.1116) 18930,18930,28930
                    534: 18930 ivpass = ivpass + 1
                    535:       write (i02,80001) ivtnum
                    536:       go to 8941
                    537: 28930 ivfail = ivfail + 1
                    538:       rvcorr = 1.1111
                    539:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    540:  8941 continue
                    541:       ivtnum = 894
                    542: c
                    543: c      ****  test 894  ****
                    544: c
                    545:       if (iczero) 38940, 8940, 38940
                    546:  8940 continue
                    547:       rvon01 = 28.8
                    548:       rvon02 = 2.88e1
                    549:       rvon03 = 288e-1
                    550:       rvon04 = 35.0
                    551:       rvcomp = amin1 (rvon01,rvon02,rvon03,rvon04)
                    552:       go to 48940
                    553: 38940 ivdele = ivdele + 1
                    554:       write (i02,80003) ivtnum
                    555:       if (iczero) 48940, 8951, 48940
                    556: 48940 if (rvcomp - 28.795) 28940,18940,48941
                    557: 48941 if (rvcomp - 28.805) 18940,18940,28940
                    558: 18940 ivpass = ivpass + 1
                    559:       write (i02,80001) ivtnum
                    560:       go to 8951
                    561: 28940 ivfail = ivfail + 1
                    562:       rvcorr = 28.800
                    563:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    564:  8951 continue
                    565: c
                    566: c     test 895 through test 897 contain intrinsic function tests for
                    567: c     float - conversion of an integer argument to real function
                    568: c
                    569:       ivtnum = 895
                    570: c
                    571: c      ****  test 895  ****
                    572: c
                    573:       if (iczero) 38950, 8950, 38950
                    574:  8950 continue
                    575:       rvcomp = float (-606)
                    576:       go to 48950
                    577: 38950 ivdele = ivdele + 1
                    578:       write (i02,80003) ivtnum
                    579:       if (iczero) 48950, 8961, 48950
                    580: 48950 if (rvcomp + 606.05) 28950,18950,48951
                    581: 48951 if (rvcomp + 605.95) 18950,18950,28950
                    582: 18950 ivpass = ivpass + 1
                    583:       write (i02,80001) ivtnum
                    584:       go to 8961
                    585: 28950 ivfail = ivfail + 1
                    586:       rvcorr = -606.00
                    587:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    588:  8961 continue
                    589:       ivtnum = 896
                    590: c
                    591: c      ****  test 896  ****
                    592: c
                    593:       if (iczero) 38960, 8960, 38960
                    594:  8960 continue
                    595:       ivon01 = 71
                    596:       rvcomp = float (ivon01)
                    597:       go to 48960
                    598: 38960 ivdele = ivdele + 1
                    599:       write (i02,80003) ivtnum
                    600:       if (iczero) 48960, 8971, 48960
                    601: 48960 if (rvcomp - 70.995) 28960,18960,48961
                    602: 48961 if (rvcomp - 71.005) 18960,18960,28960
                    603: 18960 ivpass = ivpass + 1
                    604:       write (i02,80001) ivtnum
                    605:       go to 8971
                    606: 28960 ivfail = ivfail + 1
                    607:       rvcorr = 71.000
                    608:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    609:  8971 continue
                    610:       ivtnum = 897
                    611: c
                    612: c      ****  test 897  ****
                    613: c
                    614:       if (iczero) 38970, 8970, 38970
                    615:  8970 continue
                    616:       ivon01 = 321
                    617:       rvcomp = float (-ivon01)
                    618:       go to 48970
                    619: 38970 ivdele = ivdele + 1
                    620:       write (i02,80003) ivtnum
                    621:       if (iczero) 48970, 8981, 48970
                    622: 48970 if (rvcomp + 321.05) 28970,18970,48971
                    623: 48971 if (rvcomp + 320.95) 18970,18970,28970
                    624: 18970 ivpass = ivpass + 1
                    625:       write (i02,80001) ivtnum
                    626:       go to 8981
                    627: 28970 ivfail = ivfail + 1
                    628:       rvcorr = -321.00
                    629:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    630:  8981 continue
                    631: c
                    632: c     test 898 through test 900 contain intrinsic function tests for
                    633: c     transfer of sign - both arguments and function are real
                    634: c
                    635:       ivtnum = 898
                    636: c
                    637: c      ****  test 898  ****
                    638: c
                    639:       if (iczero) 38980, 8980, 38980
                    640:  8980 continue
                    641:       rvon01 = 64.3
                    642:       rvcomp = sign (rvon01,-1.0)
                    643:       go to 48980
                    644: 38980 ivdele = ivdele + 1
                    645:       write (i02,80003) ivtnum
                    646:       if (iczero) 48980, 8991, 48980
                    647: 48980 if (rvcomp + 64.305) 28980,18980,48981
                    648: 48981 if (rvcomp + 64.295) 18980,18980,28980
                    649: 18980 ivpass = ivpass + 1
                    650:       write (i02,80001) ivtnum
                    651:       go to 8991
                    652: 28980 ivfail = ivfail + 1
                    653:       rvcorr = -64.300
                    654:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    655:  8991 continue
                    656:       ivtnum = 899
                    657: c
                    658: c      ****  test 899  ****
                    659: c
                    660:       if (iczero) 38990, 8990, 38990
                    661:  8990 continue
                    662:       rvon01 = -2.2
                    663:       rvon02 = 7.23e1
                    664:       rvcomp = sign (rvon01,rvon02)
                    665:       go to 48990
                    666: 38990 ivdele = ivdele + 1
                    667:       write (i02,80003) ivtnum
                    668:       if (iczero) 48990, 9001, 48990
                    669: 48990 if (rvcomp - 2.1995) 28990,18990,48991
                    670: 48991 if (rvcomp - 2.2005) 18990,18990,28990
                    671: 18990 ivpass = ivpass + 1
                    672:       write (i02,80001) ivtnum
                    673:       go to 9001
                    674: 28990 ivfail = ivfail + 1
                    675:       rvcorr = 2.2000
                    676:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    677:  9001 continue
                    678:       ivtnum = 900
                    679: c
                    680: c      ****  test 900  ****
                    681: c
                    682:       if (iczero) 39000, 9000, 39000
                    683:  9000 continue
                    684:       rvon01 = 35.32e+1
                    685:       rvon02 = 1.0
                    686:       rvcomp = sign (rvon01,rvon02)
                    687:       go to 49000
                    688: 39000 ivdele = ivdele + 1
                    689:       write (i02,80003) ivtnum
                    690:       if (iczero) 49000, 9011, 49000
                    691: 49000 if (rvcomp - 353.15) 29000,19000,49001
                    692: 49001 if (rvcomp - 353.25) 19000,19000,29000
                    693: 19000 ivpass = ivpass + 1
                    694:       write (i02,80001) ivtnum
                    695:       go to 9011
                    696: 29000 ivfail = ivfail + 1
                    697:       rvcorr = 353.20
                    698:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    699:  9011 continue
                    700: c
                    701: c     test 901 through test 904 contain intrinsic function tests for
                    702: c     positive difference where arguments and function are real
                    703: c
                    704:       ivtnum = 901
                    705: c
                    706: c      ****  test 901  ****
                    707: c
                    708:       if (iczero) 39010, 9010, 39010
                    709:  9010 continue
                    710:       rvon01 = 22.2
                    711:       rvcomp = dim (rvon01,1.0)
                    712:       go to 49010
                    713: 39010 ivdele = ivdele + 1
                    714:       write (i02,80003) ivtnum
                    715:       if (iczero) 49010, 9021, 49010
                    716: 49010 if (rvcomp - 21.195) 29010,19010,49011
                    717: 49011 if (rvcomp - 21.205) 19010,19010,29010
                    718: 19010 ivpass = ivpass + 1
                    719:       write (i02,80001) ivtnum
                    720:       go to 9021
                    721: 29010 ivfail = ivfail + 1
                    722:       rvcorr = 21.200
                    723:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    724:  9021 continue
                    725:       ivtnum = 902
                    726: c
                    727: c      ****  test 902  ****
                    728: c
                    729:       if (iczero) 39020, 9020, 39020
                    730:  9020 continue
                    731:       rvon01 = 4.5e1
                    732:       rvon02 = 41.0
                    733:       rvcomp = dim (rvon01,rvon02)
                    734:       go to 49020
                    735: 39020 ivdele = ivdele + 1
                    736:       write (i02,80003) ivtnum
                    737:       if (iczero) 49020, 9031, 49020
                    738: 49020 if (rvcomp - 3.9995) 29020,19020,49021
                    739: 49021 if (rvcomp - 4.0005) 19020,19020,29020
                    740: 19020 ivpass = ivpass + 1
                    741:       write (i02,80001) ivtnum
                    742:       go to 9031
                    743: 29020 ivfail = ivfail + 1
                    744:       rvcorr = 4.0000
                    745:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    746:  9031 continue
                    747:       ivtnum = 903
                    748: c
                    749: c      ****  test 903  ****
                    750: c
                    751:       if (iczero) 39030, 9030, 39030
                    752:  9030 continue
                    753:       rvon01 = 2.0
                    754:       rvon02 = 10.0
                    755:       rvcomp = dim (rvon01,rvon02)
                    756:       go to 49030
                    757: 39030 ivdele = ivdele + 1
                    758:       write (i02,80003) ivtnum
                    759:       if (iczero) 49030, 9041, 49030
                    760: 49030 if (rvcomp) 29030,19030,29030
                    761: 19030 ivpass = ivpass + 1
                    762:       write (i02,80001) ivtnum
                    763:       go to 9041
                    764: 29030 ivfail = ivfail + 1
                    765:       rvcorr = 0.0000
                    766:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    767:  9041 continue
                    768:       ivtnum = 904
                    769: c
                    770: c      ****  test 904  ****
                    771: c
                    772:       if (iczero) 39040, 9040, 39040
                    773:  9040 continue
                    774:       rvon01 = 1.65e+1
                    775:       rvon02 = -2.0
                    776:       rvcomp = dim (rvon01,rvon02)
                    777:       go to 49040
                    778: 39040 ivdele = ivdele + 1
                    779:       write (i02,80003) ivtnum
                    780:       if (iczero) 49040, 9051, 49040
                    781: 49040 if (rvcomp - 18.495) 29040,19040,49041
                    782: 49041 if (rvcomp - 18.505) 19040,19040,29040
                    783: 19040 ivpass = ivpass + 1
                    784:       write (i02,80001) ivtnum
                    785:       go to 9051
                    786: 29040 ivfail = ivfail + 1
                    787:       rvcorr = 18.500
                    788:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    789:  9051 continue
                    790: c
                    791: c     tests 905 and 906 contain expressions containing more than one
                    792: c     intrinsic function - all arguments and functions are real
                    793: c
                    794:       ivtnum = 905
                    795: c
                    796: c      ****  test 905  ****
                    797: c
                    798:       if (iczero) 39050, 9050, 39050
                    799:  9050 continue
                    800:       rvon01 = 33.3
                    801:       rvon02 = -12.1
                    802:       rvcomp = aint (rvon01) + abs (rvon02)
                    803:       go to 49050
                    804: 39050 ivdele = ivdele + 1
                    805:       write (i02,80003) ivtnum
                    806:       if (iczero) 49050, 9061, 49050
                    807: 49050 if (rvcomp - 45.095) 29050,19050,49051
                    808: 49051 if (rvcomp - 45.105) 19050,19050,29050
                    809: 19050 ivpass = ivpass + 1
                    810:       write (i02,80001) ivtnum
                    811:       go to 9061
                    812: 29050 ivfail = ivfail + 1
                    813:       rvcorr = 45.100
                    814:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    815:  9061 continue
                    816:       ivtnum = 906
                    817: c
                    818: c      ****  test 906  ****
                    819: c
                    820:       if (iczero) 39060, 9060, 39060
                    821:  9060 continue
                    822:       rvon01 = 76.3
                    823:       rvon02 = 2.1e1
                    824:       rvon03 = 3e1
                    825:       rvcomp = amax1(rvon01,rvon02,rvon03)-amin1(rvon01,rvon02,rvon03)
                    826:       go to 49060
                    827: 39060 ivdele = ivdele + 1
                    828:       write (i02,80003) ivtnum
                    829:       if (iczero) 49060, 9071, 49060
                    830: 49060 if (rvcomp - 55.295) 29060,19060,49061
                    831: 49061 if (rvcomp - 55.305) 19060,19060,29060
                    832: 19060 ivpass = ivpass + 1
                    833:       write (i02,80001) ivtnum
                    834:       go to 9071
                    835: 29060 ivfail = ivfail + 1
                    836:       rvcorr = 55.300
                    837:       write (i02,80005) ivtnum, rvcomp, rvcorr
                    838:  9071 continue
                    839: c
                    840: c     write page footings and run summaries
                    841: 99999 continue
                    842:       write (i02,90002)
                    843:       write (i02,90006)
                    844:       write (i02,90002)
                    845:       write (i02,90002)
                    846:       write (i02,90007)
                    847:       write (i02,90002)
                    848:       write (i02,90008)  ivfail
                    849:       write (i02,90009) ivpass
                    850:       write (i02,90010) ivdele
                    851: c
                    852: c
                    853: c     terminate routine execution
                    854:       stop
                    855: c
                    856: c     format statements for page headers
                    857: 90000 format (1h1)
                    858: 90002 format (1h )
                    859: 90001 format (1h ,10x,34hfortran compiler validation system)
                    860: 90003 format (1h ,21x,11hversion 1.0)
                    861: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
                    862: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
                    863: 90006 format (1h ,5x,46h----------------------------------------------)
                    864: 90011 format (1h ,18x,17hsubset level test)
                    865: c
                    866: c     format statements for run summaries
                    867: 90008 format (1h ,15x,i5,19h errors encountered)
                    868: 90009 format (1h ,15x,i5,13h tests passed)
                    869: 90010 format (1h ,15x,i5,14h tests deleted)
                    870: c
                    871: c     format statements for test results
                    872: 80001 format (1h ,4x,i5,7x,4hpass)
                    873: 80002 format (1h ,4x,i5,7x,4hfail)
                    874: 80003 format (1h ,4x,i5,7x,7hdeleted)
                    875: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
                    876: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
                    877: c
                    878: 90007 format (1h ,20x,20hend of program fm097)
                    879:       end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.