This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch, libgfortran] Better format hash function


Janne Blomqvist wrote:
Hi,

the attached patch replaces the existing (too?) simple string hash
function with an almost equally simple but supposedly pretty well
working one by D.J. Bernstein.

Regtested on x86_64-unknown-linux-gnu, Ok for trunk?

I did some tests on the format strings that Jerry and Dominique provided.


- Based on some further reading, it seems that a prime size for the bucket size instead of power-of-2 doesn't matter that much for the tested hash functions, and tests seem to bear this out.

- The current one is surprisingly good, with the DJB at best marginally better.

- The "FNV-1a" hash seems slightly better than the other options tested.

Attached is a python program that generates histogram plots. It needs the matplotlib library, the file "formatline.txt" with the format strings from the gfortran testsuite that Jerry provided, and the file "formatline2.txt" which is taken from the NIST testsuite by Dominique.

Some further reading

http://www.azillionmonkeys.com/qed/hash.html

http://burtleburtle.net/bob/hash/doobs.html

http://www.partow.net/programming/hashfunctions/


-- Janne Blomqvist
#!/usr/bin/python

# Copyright (C) 2009 Janne Blomqvist

# Evaluate different hash functions and bucket sizes with data from
# gfortran and nist testsuites.

# Thanks to Jerry DeLisle and Dominique Dhumieres for extracting the
# format stirngs.

from pylab import *

def djb(key):
    """DJB hash function"""
    hash = 5381
    for char in key:
        hash = ((hash << 5) + hash) + ord(char)
    return hash

def djb2(key):
    """DJB hash without the *33, essentially a simple additive hash"""
    hash = 5381
    for char in key:
        hash += ord(char)
    return hash

def curhash(key):
    """Current libgfortran format hash function"""
    hash = 0
    for char in key:
        hash ^= ord(char)
    return hash

permutation_table = randint(0, 255, 256)

def pearson_hash(message_string):
    h = 0
    for ch in message_string:
        h = permutation_table[h ^ ord(ch)]
    return h

def fnv(key):
    """FNV-1a"""
    fnv_prime = 0x01000193
    hash = 0x811c9dc5
    for ch in key:
        hash ^= ord(ch)
        hash *= fnv_prime
    return hash

def read_formats():
    formats = []
    for line in open('formatline.txt'):
        formats.append(line[1:-1])
    for line in open('formatline2.txt'):
        formats.append(line)
    return set(formats) # Use a set to remove duplicates

def make_hist(hf, formats, bucketsize):
    """Run the hash function with the data, and make a histogram with
    the distribution of values into the bucket"""
    hvals = []
    for format in formats:
        hvals.append(hf(format) % bucketsize)
    #hist_data, levels = np.histogram(hvals, bucketsize)
    figure()
    hist(hvals, bucketsize, label=hf.__name__)
    title(hf.__name__ + ' ' + str(bucketsize))
    xlabel('Format cache slot')
    ylabel('Collisions')
    show()

if __name__ == '__main__':
    frm = read_formats()
    make_hist(djb, frm, 16)
    make_hist(curhash, frm, 16)
    make_hist(djb, frm, 17)
    make_hist(djb2, frm, 17)
    make_hist(pearson_hash, frm, 16)
    make_hist(fnv, frm, 16)

'("#",A,"#")'
'(A)'
'(A)'
'(A)'
'(i5)'
'(i5)'
'(b0)'
'(a,i0,a)'
'(o0)'
'(a,i0,a)'
'(z0)'
'(a,i0,a)'
'(b0)'
'(a,i0,a)'
'(o0)'
'(a,i0,a)'
'(z0)'
'(a,i0,a)'
'(b0)'
'(a,i0,a)'
'(o0)'
'(a,i0,a)'
'(z0)'
'(a,i0,a)'
'(10f8.3)'
'(10f8.3)'
'(10f8.3)'
'(a)'
'(a)'
'(a)'
'(i6, (t7, 6i2))'
'(i4)'
'(i2.2)'
'(3X, A, T1, A,/)'
'(A2,1X,A2)'
'("hello"/"world")'
'("hello",t1,"HELLO",1x,"!"/"world",tl12,"WORLD")'
"(n)"
"(n)"
'(a)'
'(a)'
'(80I1)'
"(1X,a,'xyz')"
"(1X,a,'xyz')"
'(2A3)'
'(F0.1)'
'(2hi=,i3)'
'(2hi=,i3)'
'(2hi=,i3)'
'(A, Q, A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'("simple  = ",i5)'
'("derived = ",i5)'
'(80a)'
'(80a)'
'(80a)'
'(80a)'
'(10I4)'
'(10I4)'
'(A)'
'(80a1)'
'(a)'
'(A$)'
"(I2)"
'(a)'
'(a)'
'(i0)'
'(i0)'
'(f0.2)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(3(2x,i4/)/3(3x,i6/))'
'(3(2x,i4/)/3(3x,i6/))'
'(A)'
'(/2i2)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(A)'
'(2I2)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(10f8.3)'
'(10f8.3)'
'(dp,f8.3,dc,f8.2,dp,f8.3)'
'(A)'
'(I2)'
'(I1)'
"(A)"
'(2A4)'
'(1X,2E12.3)'
'(1X,1P,2E12.3)'
'(g0.3)'
'(g0.9)'
'(g0.5)'
'(g0.8)'
'(g0.8)'
'(3E20.2e2)'
'(3E20.2e3)'
'(3E20.2e4)'
'(3E20.2e5)'
'(3E20.2e6)'
'(3E20.2e7)'
'(3E20.3e2)'
'(3E20.3e3)'
'(3E20.3e4)'
'(3E20.3e5)'
'(3E20.3e6)'
'(3E20.3e7)'
'(3E20.4e2)'
'(3E20.4e3)'
'(3E20.4e4)'
'(3E20.4e5)'
'(3E20.4e6)'
'(3E20.4e7)'
'(es6.0)'
'(A)'
'(A)'
'(A)'
'(A)'
'(3a)'
'(3a)'
'(3a)'
'(I50)'
'(I50)'
'(I50)'
'(I50)'
'(I50)'
"(1000(a,$))"
'(A)'
'(2f10.2)'
'(a)'
'(a)'
'(a)'
'(A)'
'(A)'
'(A)'
'(A2)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(3l6)'
"(a)"
'(a)'
'(a)'
'(a)'
'(A,I1)'
"(F6.3)"
"(I6)"
"(I6)"
'(9G10.6)'
'(9G10.6)'
'(3(2x,i4/)/3(3x,i6/))'
'(3(2x,i4/)/3(3x,i6/))'
"(a, i8)"
'(a10,tl6,2x,a2)'
'(a10,tl6,2x,a2)'
'(a10,tl6,2x,a2)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(20i4)'
'(20i4)'
"(f4,a6)"
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(80I1)'
'(a)'
"(1.0E-7,4.0E-3)"
'(A)'
'(3A4)'
'(3A4, 8A)'
'(4A8, "!")'
'(16A)'
'(8a)'
"(1pe9.2)"
"(1pe9.2)"
'("#",A,"#")'
'(a)'
"(a)"
"(a)"
'(a)'
'(a)'
'(2I4)'
'(3(2x,i4/)/3(3x,i6/))'
'(3(2x,i4/)/3(3x,i6/))'
'(6(i12/))'
'(a)'
'(a11)'
'(a11)'
'(a)'
'(a)'
'(a)'
'(a)'
'(I2)'
'(A)'
'(A15)'
'(E15.8)'
"(F10.4)"
'(I0)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
"(A)"
'(80I1)'
'(A)'
'(t50000,a,t1,a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
"(A,4F5.0)"
"(A,4I5)"
'(a8)'
"(a(1))"
'(a12/)'
'(4a12)'
'(a12/)'
'(a12/)'
'(a12/)'
'(1X,A,T1,A)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(T7,2F9.3)'
'(e12.5)'
"(a)"
"(a)"
"(a)"
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(A,2/,A)'
'(I2)'
'(I2)'
'(I2)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a3,i1)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
"(i7,(' abcd'))"
'(A34)'
'(A37)'
'(a)'
'(a)'
'(a)'
'(a)'
'(I2)'
'(I2)'
"(a)"
'(A6)'
'(A10)'
'(A1)'
'(4F10.2)'
'(4F10.2)'
'(4F10.2)'
'(4F10.2)'
"(i5)"
"(i5)"
"(i5)"
'(3L1)'
'(3I1)'
"(a)"
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(G10.3,A)'
'(G10.3,A)'
'(G10.3e1,a)'
'(E199.192,A)'
'(EN15.3,A)'
'(EN15.3,A)'
'(ES10.3,A)'
'(F10.8,A)'
'(1PE10.3,A)'
'(F10.3,A)'
'(F10.3,A)'
'(E10.3,A)'
'(EN15.3,A)'
'(2PE10.4,A)'
'(-2PE10.4,A)'
'(E10.1,A)'
'(a)'
'(a)'
'(3A4)'
'(3A4, 8A)'
'(4A8, "!")'
'(16A)'
'(8a)'
'(L1)'
'(L1)'
'(a)'
'(a)'
'(a)'
'(a040,t1,040a)'
'(a032,t2,a032t3,a032)'
'(a017,t1,a0017)'
"(L)"
"(L)"
"(L)"
"(L)"
"(L)"
"(L)"
"(L)"
"(L)"
"(L)"
"(L)"
"(L)"
"(L)"
"(L)"
"(L)"
"(L)"
"(L)"
"(nan,4.0)"
"(7.0,nan)"
"(+inFinity,4.0)"
"(7.0,-inFinity)"
"(+inf,4.0)"
"(7.0,-inf)"
'(a)'
'(i0)'
'(E15.0)'
'(D15.0)'
'(G15.0)'
'(2PE15.0)'
'(0PE15.0)'
'(1PE15.0)'
'(F15.0)'
'(80L1)'
'(4i2)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(4I3)'
'(4I3)'
'(a)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(a,t1,a)'
'(a)'
'(a)'
'(a)'
'(2a4)'
'(a)'
'(a)'
'(a8)'
'(a)'
'(3i2)'
'(a)'
'(a10)'
'(a)'
'(a)'
'(a)'
'(i5)'
'(i5)'
'(i5)'
'(i5)'
"(A)"
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(10f8.3)'
'(10f8.3)'
'(A,T2,A)'
'(6A)'
'(a)'
'(a)'
'(A)'
'(A)'
'(A)'
'(g20.14)'
'(6a1)'
"(A)"
'(6A)'
'(6A)'
'(6A)'
'(6A)'
'(2(e12.4e5, 2x))'
'(2(e12.4e5, 2x))'
'(f4,a6)'
'(d4,a6)'
'(e10.4)'
'(e10.4)'
'(e10.4)'
'(e10.4)'
'(A, Q, A)'
'(Q)'
'(4I2)'
'(A)'
'(A)'
'(A)'
'(A)'
'(A)'
'(Z4)'
'(Z5)'
'(Z9)'
'(Z17)'
'(Z2)'
'(Z8)'
'(B65)'
'(O4)'
'(2A)'
'(2A)'
'(2A)'
'(I4)'
'(I5)'
'(i0)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
"(g0,g0,g0)"
'(g0,g0,g0)'
'(5(a))'
'(10I5)'
'(a)'
'(a)'
'(a)'
'(80I1)'
"(4I4)"
"(4I4)"
'(I2)'
"(a)"
'(10f8.3)'
'(10f8.3)'
'(10f8.3)'
'(10f8.3)'
'(F12.5)'
'(F15.5)'
'(A)'
'(10A1)'
'(10A1)'
'(I4)'
'(I4)'
'(I4)'
'(ES12.3)'
'(EN12.3)'
'(9F9.5)'
'(9F9.5)'
'(18F9.5)'
'(18F9.5)'
'(f10.3,s,f10.3,sp,f10.3,ss,f10.3)'
'(f10.3,dc,f10.3,dp,f10.3)'
'(a)'
'(a)'
'(f9.2,1x,f8.2,2x,f11.7)'
'(100i1)'
'(100i1)'
'(f16.10)'
'(F4.1)'
'(SS,F4.1)'
'(SP,F4.1)'
'(A)'
'(2A)'
'(2A)'
'(A,$)'
'(A)'
'(A)'
'(            NaN,            NaN)'
'(            NaN,            NaN)'
'(      +Infinity,      -Infinity)'
'(  0.0000000    , -0.0000000    )'
'(4(a,/),a)'
'(a)'
'(T20,A3,  T1,A4,  T5,A2,  T7,A2,  T9,A4, T17,A2)'
'(a)'
'(a)'
'(3(a))'
'(3(a))'
'(3(a))'
"(A)"
'(10I5)'
'(10I5)'
'(10I5)'
'(A)'
'(2I2)'
"(g0,g0,g0)"
'(3A4)'
'(3A4, 8A)'
'(4A8, "!")'
'(16A)'
'(8a)'
'(55L1)'
'(55L1)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(L1)'
'(L1)'
'(L1)'
"('#',F0.2,'#')"
"('#',F0.2,'#')"
'("#",A,"#")'
'(BZ,E11.0)'
'(BN,E11.0)'
'(BN,E11.0)'
'(E11.0)'
'(BZ,E11.0)'
'(3(2x,i4/)/3(4x,i9/))'
'(3a)'
'(3a)'
'(10f8.3)'
'(dc,10f8.3)'
'(dp,10f8.3)'
'(10f8.3)'
'(10f8.3)'
'(80I1)'
'(Q)'
"(2A4)"
"(A4)(A5)"
"(A5)"
'(4I4)'
'(4I4)'
'(a)'
'(A)'
'(A)'
'(A)'
'(a)'
"(str)"
'(A,$)'
'(A)'
'(A)'
'(a)'
'(a5)'
"(F6.3)"
'(i6)'
'(i6)'
'(i6)'
'(i6)'
'(i6)'
'(i6)'
'(i6)'
'(i6)'
'(i6)'
'(i6)'
'(i6)'
'(f4,a6)'
'(d10,a6)'
'(i6)'
'(i6)'
'(i6)'
'(i6)'
'(i6)'
'(i6)'
'(i6)'
"(A)"
"(A)"
"(A)"
'(10(I3))'
"(A)"
'(a)'
'(a)'
'(a)'
'(f3.3)'
'(a)'
'(f8.3)'
'(a)'
'(f3.3)'
'(f3.3)'
'(a)'
"(A)"
"(A)"
'("1 2 3 4 5 6 7 8 9")'
'("9 8 7 6")'
'(10(I3))'
'(10(I3))'
'(10(I3))'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(i4)'
'(i2.2)'
'(A)'
'("1 2 3 4 5 6 7 8 9")'
'("9 8 7 6")'
'(6F8.3)'
'(6F8.3)'
'(6F8.3)'
'(a)'
'(a)'
'(a)'
'(a)'
'(i12)'
"(A)"
"(A)"
"(I2)"
'(10I4)'
'(10I4)'
'(10I4)'
'(10I4)'
'(10I4)'
'(10I4)'
'(10I4)'
'(10I4)'
'(9F9.5)'
'(9F9.5)'
'(9F9.5)'
'(9F9.5)'
'(18F9.5)'
'(18F9.5)'
'(18F9.5)'
'(18F9.5)'
'(F40.35)'
'(F40.35)'
'(F15.10)'
'(F15.10)'
'(F15.10)'
'(F15.10)'
'(F15.10)'
'(F40.35)'
'(F15.10)'
'(F15.10)'
'(F15.10)'
'(F15.10)'
'(F15.10)'
'(F20.15)'
'(F20.15)'
'(G20.10E5)'
'(G20.10E5)'
'(F20.15)'
'(F20.15)'
'(G20.10E5)'
'(G20.10E5)'
'(o0)'
'(A,Z8)'
'(A,Z8)'
'(A,Z8)'
'(A)'
'(A)'
'(1P,E13.5)'
'(E13.5)'
'(F15.5)'
"(' (', F15.5, ',' F15.5, ') ')"
'(a,1x,(t7, 3a))'
'(a)'
'(2hi=,i3)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(a)'
'(A,2X)'
'(A)'
'(A)'
'(TL2,A)'
'(a)'
'(A)'
'(A)'
'(A)'
'(a)'
"(i22)"
'(5a16)'
'(i3)'
"(e9.2)"
"(d9.2)"
'(4a1)'
'(4a1)'
'(4i2)'
'(4i2)'
"(a,t1,a,a)"
"(a,t1,a)"
"(a)"
"(a)"
"(a)"
"(2f5.3)"
"(a" // ")"
"(f5.3)"
"(g0,g0,g0)"
'(g0,g0,g0)'
'(1x,a,g0,a)'
"(g0,g0,g0,g0)"
"(g0,g0,',',g0,g0)"
"(1.2345001,2.4567001)"
'(A)'
(  3(G11.4), 3G11.4)
( " " )
( " ", 10X, "11    44     1ST         LINE" )
( " ", 10X, E12.5 )
( " ", 10X,"THIS TEST PRINTS -0.12345E+03 USING E12.5" )
( " ",10X, "1ST LINE - AABBCCDD" )
( " ",10X, F3.0 )
( " ",10X, F4.0)
( " ",10X,"THIS TEST  PRINTS -15. WITH F4.0 DESCRIPTOR" )
( " ",4X,I5,7X,"DELETED")
( "+", 10X, "    33    66         3RD" )
( "+", 10X, "  22    55       2ND" )
( "+", 25X, "WWXXYYZZ OVERPRINTS - 2ND LINE" )
( "0",10X)
( )
( // 8X, "TEST OF DNINT" )
( // 8X, "TEST OF IDNINT" )
( /////" ")
( //////////////// I3,2I2,3I3,I4,10(I3) )
( 10X, "FILE I09 CREATED WITH 124 SEQUENTIAL RECORDS"  )
( 110A1)
( 1X,80A1 / 10X, 30A1)
( 1X,80A1)
( 1X,80A1,3(/ 10X,71A1) )
( 2(F3.1) , 2(F4.1), 2(F7.4))
( 27X,F12.3, E12.4,F12.3 )
( 2D10.3, D14.7, D18.11/ 3D21.14/ 2D16.9)
( 2F6.2, 2E10.3, 2E11.4, 2E8.1/ 2E14.7)
( 2L4, L3, L2, L3, L6, L7)
( 2X, D8.1)
( 7(1X),I3,6(1X),I4,I1,56(1X),I3,3(/7(1X),I3,67(1X),I3) )
( 80A1 )
( E12.5, (I4))
( F7.1, (/2(E10.3), 2(E10.3)), E10.3)
( I1,I2,I3)
( I3, 2(1I2), 3(1I3), I4, 10(1I3) )
( I3, 2I2, 3I3, I4, 30A2 )
( I3,2(1I2), 3(1I3), I4, 3(1I3) )
( L6, L4, L10, L5)
("           " )
("      IVON01 =  113   IVON02 =    8" )
("   FILE I08 HAS BEEN CREATED AND CONTAINS 141 RECORDS" )
("   FILE I09 HAS BEEN CREATED AND CONTAINS 143 RECORDS" )
(" ")
(" ", 10X)
(" ","AID IN THE VISUAL VERIFICATION OF THE TESTS.  FOR" )
(" ","COLUMN IN BOTH VALUE AND CHARACTER POSITION." )
(" ","FOR OFFICIAL USE ONLY     " ,35X,"COPYRIGHT  1982" )
(" ","TEST ",I3,1X," FAIL",34X,A31)
(" ","THE OUTPUT TO BE CORRECT THE DATA VALUES DISPLAYED" )
(" ","WRITTEN BUT 141 RECORDS SHOULD HAVE BEEN WRITTEN." )
(" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS   " ,A5,/)
(" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/)
(" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/)
(" ",/,11X,"COMPUTED:  RECL=" ,I6,5X,"NEXTREC=",I6)
(" ",10X,"COMPUTED:  " , ", FORMATTED=" ,A3)
(" ",10X,"CORRECT:   RECL=   120" ,5X,"NEXTREC=     1" /)
(" ",10X,"CORRECT:   RECL=   120" ,5X,"NEXTREC=     6" /)
(" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" )
(" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" )
(" ",10X,"THE PROGRAM FM001 EXECUTED CORRECTLY IF" )
(" ",10X,"THIS TEST PRINTS 12345 UNDER I5 DESCRIPTOR" )
(" ",10X,"THIS TEST PRINTS 3 UNDER I1 DESCRIPTOR" )
(" ",10X,"THIS TESTS PRINTS 3. UNDER F3.0 DESCRIPTOR" )
(" ",10X,I1)
(" ",10X,I2)
(" ",10X,I5)
(" ",15X,"TEST 1 PASSED" )
(" ",15X,"TEST 2 FAILED WITH COMPUTED AND CORRECT =2" )
(" ",15X,"TEST 3 WAS DELETED" )
(" ",15X,"THE RUN SUMMARY TOTALS ALL EQUAL 1" )
(" ",15X,I5," ERRORS ENCOUNTERED" )
(" ",15X,I5," TESTS DELETED" )
(" ",15X,I5," TESTS PASSED" )
(" ",16X,"C0RRECT:  " ," 1.1")
(" ",16X,"C0RRECT:  " ," 12345")
(" ",16X,"COMPUTED: " ,22X,"6 COMPUTED LINES EXPECTED" )
(" ",16X,"COMPUTED: " ,43A1)
(" ",16X,"COMPUTED: " ,54A1)
(" ",16X,"COMPUTED: " ,A15,2X,A8,2X,A9)
(" ",16X,"COMPUTED: " ,A2,2X,A4,2X,A6)
(" ",16X,"COMPUTED: " ,A4,2X,F4.1,2X,I5,2X,L1)
(" ",16X,"COMPUTED: " ,A4,2X,I5,2X,L1,2X,F4.1)
(" ",16X,"COMPUTED: " ,E20.14)
(" ",16X,"COMPUTED: " ,F6.2,2X,F6.4,2X,F7.2)
(" ",16X,"COMPUTED: " ,F9.4,2X,F9.3,2X,F7.4)
(" ",16X,"COMPUTED: " ,I5,2X,F10.5,2X,L1,2X,A4)
(" ",16X,"COMPUTED: " ,I5,2X,I5)
(" ",16X,"COMPUTED: " ,I5,2X,I5,2X,I5)
(" ",16X,"COMPUTED: " ,I5,3(2X,I5))
(" ",16X,"COMPUTED: " ,I5,4(2X,I5))
(" ",16X,"COMPUTED: " ,L1)
(" ",16X,"COMPUTED: " ,L1,4(2X,L1))
(" ",16X,"COMPUTED: " ,L1,7(2X,L1))
(" ",16X,"COMPUTED:",23X,"2 COMPUTED LINES EXPECTED" )
(" ",16X,"COMPUTED:",23X,"3 COMPUTED LINES EXPECTED" )
(" ",16X,"COMPUTED:",23X,"5 COMPUTED LINES EXPECTED" )
(" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31)
(" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31)
(" ",16X,"COMPUTED= " ,A21,1X,A31)
(" ",16X,"COMPUTED= " ,D17.10,10X,A31)
(" ",16X,"COMPUTED= " ,E12.5,10X,A31)
(" ",16X,"COMPUTED= " ,I6,16X,A31)
(" ",16X,"CORRECT:  " , 2X, "-162.50")
(" ",16X,"CORRECT:  " ,"    5",2X,"    6")
(" ",16X,"CORRECT:  " ," 4444")
(" ",16X,"CORRECT:  " ," T")
(" ",16X,"CORRECT:  " ,"AB",2X,"ABCD",2X,"ABCDEF")
(" ",16X,"CORRECT:  " ,"F  F  T  T  T" )
(" ",16X,"CORRECT:  " ,"F")
(" ",16X,"CORRECT:  " ,"T  F  F  T  F  F  T  T" )
(" ",16X,"CORRECT:  " ,22X,"2 CORRECT ANSWERS POSSIBLE" )
(" ",16X,"CORRECT:  " ,22X,"2 CORRECT ANSWERS POSSIBLE" )
(" ",16X,"CORRECT:  " ,22X,"CORRESPONDING LINE MUST MATCH" )
(" ",16X,"CORRECT:  " ,43A1)
(" ",16X,"CORRECT:  " ,54A1)
(" ",16X,"CORRECT:  " ,E20.14)
(" ",16X,"CORRECT=  " ,"(",E12.5,", ",E12.5,")",6X,A31)
(" ",16X,"CORRECT=  " ,"(",F12.5,", ",F12.5,")",6X,A31)
(" ",16X,"CORRECT=  " ,A21,1X,A31)
(" ",16X,"CORRECT=  " ,D17.10,10X,A31)
(" ",16X,"CORRECT=  " ,E12.5,10X,A31)
(" ",16X,"CORRECT=  " ,I6,16X,A31)
(" ",18X,"SUBSET LEVEL TEST" )
(" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" )
(" ",19X,I5," TESTS DELETED" )
(" ",19X,I5," TESTS FAILED" )
(" ",19X,I5," TESTS PASSED" )
(" ",20X,"END OF PROGRAM FM001" )
(" ",20X,"END OF PROGRAM FM002" )
(" ",20X,"END OF PROGRAM FM003" )
(" ",20X,"END OF PROGRAM FM004" )
(" ",20X,"END OF PROGRAM FM005" )
(" ",20X,"END OF PROGRAM FM006" )
(" ",20X,"END OF PROGRAM FM007" )
(" ",20X,"END OF PROGRAM FM008" )
(" ",20X,"END OF PROGRAM FM009" )
(" ",20X,"END OF PROGRAM FM010" )
(" ",20X,"END OF PROGRAM FM011" )
(" ",20X,"END OF PROGRAM FM012" )
(" ",20X,"END OF PROGRAM FM013" )
(" ",20X,"END OF PROGRAM FM014" )
(" ",20X,"END OF PROGRAM FM016" )
(" ",20X,"END OF PROGRAM FM017" )
(" ",20X,"END OF PROGRAM FM018" )
(" ",20X,"END OF PROGRAM FM019" )
(" ",20X,"END OF PROGRAM FM020" )
(" ",20X,"END OF PROGRAM FM021" )
(" ",20X,"END OF PROGRAM FM022" )
(" ",20X,"END OF PROGRAM FM023" )
(" ",20X,"END OF PROGRAM FM024" )
(" ",20X,"END OF PROGRAM FM025" )
(" ",20X,"END OF PROGRAM FM026" )
(" ",20X,"END OF PROGRAM FM028" )
(" ",20X,"END OF PROGRAM FM030" )
(" ",20X,"END OF PROGRAM FM031" )
(" ",20X,"END OF PROGRAM FM032" )
(" ",20X,"END OF PROGRAM FM033" )
(" ",20X,"END OF PROGRAM FM034" )
(" ",20X,"END OF PROGRAM FM035" )
(" ",20X,"END OF PROGRAM FM036" )
(" ",20X,"END OF PROGRAM FM037" )
(" ",20X,"END OF PROGRAM FM038" )
(" ",20X,"END OF PROGRAM FM039" )
(" ",20X,"END OF PROGRAM FM040" )
(" ",20X,"END OF PROGRAM FM041" )
(" ",20X,"END OF PROGRAM FM042" )
(" ",20X,"END OF PROGRAM FM043" )
(" ",20X,"END OF PROGRAM FM044" )
(" ",20X,"END OF PROGRAM FM045" )
(" ",20X,"END OF PROGRAM FM050" )
(" ",20X,"END OF PROGRAM FM056" )
(" ",20X,"END OF PROGRAM FM060" )
(" ",20X,"END OF PROGRAM FM061" )
(" ",20X,"END OF PROGRAM FM062" )
(" ",20X,"END OF PROGRAM FM080" )
(" ",20X,"END OF PROGRAM FM097" )
(" ",20X,"END OF PROGRAM FM098" )
(" ",20X,"END OF PROGRAM FM099" )
(" ",20X,"END OF PROGRAM FM100" )
(" ",20X,"END OF PROGRAM FM101" )
(" ",20X,"END OF PROGRAM FM102" )
(" ",20X,"END OF PROGRAM FM103" )
(" ",20X,"END OF PROGRAM FM104" )
(" ",20X,"END OF PROGRAM FM105" )
(" ",20X,"END OF PROGRAM FM106" )
(" ",20X,"END OF PROGRAM FM107" )
(" ",20X,"END OF PROGRAM FM108" )
(" ",20X,"END OF PROGRAM FM109" )
(" ",20X,"END OF PROGRAM FM200" )
(" ",20X,"END OF PROGRAM FM201" )
(" ",20X,"END OF PROGRAM FM202" )
(" ",20X,"END OF PROGRAM FM203" )
(" ",20X,"END OF PROGRAM FM204" )
(" ",20X,"END OF PROGRAM FM205" )
(" ",20X,"END OF PROGRAM FM251" )
(" ",20X,"END OF PROGRAM FM252" )
(" ",20X,"END OF PROGRAM FM253" )
(" ",20X,"END OF PROGRAM FM254" )
(" ",20X,"END OF PROGRAM FM255" )
(" ",20X,"END OF PROGRAM FM256" )
(" ",20X,"END OF PROGRAM FM257" )
(" ",20X,"END OF PROGRAM FM300" )
(" ",20X,"END OF PROGRAM FM301" )
(" ",20X,"END OF PROGRAM FM302" )
(" ",20X,"END OF PROGRAM FM306" )
(" ",20X,"END OF PROGRAM FM307" )
(" ",20X,"END OF PROGRAM FM308" )
(" ",20X,"END OF PROGRAM FM311" )
(" ",20X,"END OF PROGRAM FM317" )
(" ",20X,"END OF PROGRAM FM328" )
(" ",20X,"END OF PROGRAM FM351" )
(" ",20X,"END OF PROGRAM FM352" )
(" ",20X,"END OF PROGRAM FM401" )
(" ",20X,"END OF PROGRAM FM402" )
(" ",20X,"END OF PROGRAM FM411" )
(" ",20X,"END OF PROGRAM FM413" )
(" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )
(" ",21X,"VERSION 2.1" )
(" ",21X,A13,A17)
(" ",21X,I5," OF ",I3," TESTS EXECUTED" )
(" ",21X,I5," TESTS DELETED" )
(" ",21X,I5," TESTS FAILED" )
(" ",21X,I5," TESTS PASSED" )
(" ",21X,I5," TESTS REQUIRE INSPECTION" )
(" ",24X,"FM200")
(" ",24X,"FM201")
(" ",24X,"FM202")
(" ",24X,"FM203")
(" ",24X,"FM204")
(" ",24X,"FM205")
(" ",24X,"FM251")
(" ",24X,"FM252")
(" ",24X,"FM253")
(" ",24X,"FM254")
(" ",24X,"FM255")
(" ",24X,"FM256")
(" ",24X,"FM257")
(" ",24X,"FM300")
(" ",24X,"FM301")
(" ",24X,"FM302")
(" ",24X,"FM306")
(" ",24X,"FM307")
(" ",24X,"FM308")
(" ",24X,"FM311")
(" ",24X,"FM317")
(" ",24X,"FM328")
(" ",24X,"FM351")
(" ",24X,"FM352")
(" ",24X,"FM401")
(" ",24X,"FM402")
(" ",24X,"FM411")
(" ",24X,"FM413")
(" ",26X,"   7   8   9  10" )
(" ",26X,"(",F7.2,", ",F7.2,")",4X,"SHOULD BE ZERO" )
(" ",26X,43A1)
(" ",26X,4I4)
(" ",26X,F7.2)
(" ",26X,I10)
(" ",26X,I10)
(" ",26X,I5)
(" ",2X,I3,4X," FAIL  ",/," ",15X,"COMPUTED= " , I6,/," ",15X,"CORRECT=  " ,I6)
(" ",2X,I3,4X," FAIL  ",/," ",16X,"COMPUTED= " , A21,/," ",16X,"CORRECT=  " ,A21)
(" ",2X,I3,4X," FAIL  ",/," ",16X,"COMPUTED= " , E12.5,/," ",16X,"CORRECT=  " ,E12.5)
(" ",2X,I3,4X," FAIL  ",32X,A31)
(" ",2X,I3,4X," FAIL ON REC " ,I2)
(" ",2X,I3,4X," FAIL ON RECL AND/OR NEXTREC" )
(" ",2X,I3,4X," PASS  ",32X,A31)
(" ",2X,I3,4X,"DELETED",32X,A31)
(" ",2X,I3,4X,"INSPECT",32X,A31)
(" ",48X,"   OR")
(" ",48X,"LEADING BLANKS ARE REQUIRED" )
(" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/)
(" ",48X,"THIS TEST CONTAINS 2 GROUPS" )
(" ",48X,"THIS TEST CONTAINS 4 GROUPS" )
(" ",48X,"THIS TEST CONTAINS 5 GROUPS" )
(" ",48X,"THIS TEST CONTAINS 7 GROUPS" )
(" ",48X,A31)
(" ",4X,I5,17X,"     ",5L1,5X,"     TFFFT" )
(" ",4X,I5,17X,"     ",A,5X,"     01589" )
(" ",4X,I5,17X,"     ",A,5X,"     1'A,4" )
(" ",4X,I5,17X,"     ",A,5X,"     =+-()" )
(" ",4X,I5,17X,"     ",A,5X,"     A5+.Z" )
(" ",4X,I5,17X,"     ",A,5X,"     ABMYZ" )
(" ",4X,I5,17X,"     ",A5,5X,"     12345" )
(" ",4X,I5,17X," ",3L3,5X,"   T  F  T" )
(" ",4X,I5,17X,"*",3A,"*",5X,"*(12ABYZ)*" )
(" ",4X,I5,17X,10A,5X,"059=+PQUVY" )
(" ",4X,I5,17X,A10,5X,"     ABMYZ" )
(" ",4X,I5,17X,L10,5X,"         F" )
(" ",4X,I5,17X,L10,5X,"         T" )
(" ",4X,I5,26X,A,14X,"'")
(" ",4X,I5,26X,A,14X,"/")
(" ",4X,I5,26X,A,14X,"9")
(" ",4X,I5,26X,A,14X,"A")
(" ",4X,I5,26X,A,14X,"Z")
(" ",4X,I5,26X,L1,14X,"F")
(" ",4X,I5,26X,L1,14X,"T")
(" ",4X,I5,6X,"DELETED")
(" ",4X,I5,7X,"DELETED")
(" ",4X,I5,7X,"FAIL")
(" ",4X,I5,7X,"FAIL",10X,I6,9X,I6)
(" ",4X,I5,7X,"FAIL",2X,A14,1X,A14)
(" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5)
(" ",4X,I5,7X,"PASS")
(" ",50X,"END OF PROGRAM FM509" )
(" ",50X,"END OF PROGRAM FM514" )
(" ",50X,"END OF PROGRAM FM517" )
(" ",50X,"END OF PROGRAM FM520" )
(" ",50X,"END OF PROGRAM FM700" )
(" ",50X,"END OF PROGRAM FM701" )
(" ",50X,"END OF PROGRAM FM710" )
(" ",50X,"END OF PROGRAM FM711" )
(" ",50X,"END OF PROGRAM FM715" )
(" ",50X,"END OF PROGRAM FM718" )
(" ",50X,"END OF PROGRAM FM719" )
(" ",50X,"END OF PROGRAM FM722" )
(" ",56X,"FM509")
(" ",56X,"FM514")
(" ",56X,"FM517")
(" ",56X,"FM520")
(" ",56X,"FM700")
(" ",56X,"FM701")
(" ",56X,"FM710")
(" ",56X,"FM711")
(" ",56X,"FM715")
(" ",56X,"FM718")
(" ",56X,"FM719")
(" ",56X,"FM722")
(" ",5X,"----------------------------------------------" )
(" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT")
(" ",5X,"TEST",5X,"PASS/FAIL",5X,"COMPUTED",8X,"CORRECT")
(" ",6X," (2.0,-3.0)  T  15.625  GOODBYE  FOR NOW" )
(" ",6X," (3.0,4.0)  5.0  -5.0   (-3.0,-4.0)" )
(" ",6X," (3.0,4.0)" )
(" ",6X," (6.0,9.0)" )
(" ",6X," 2.5E-11  0.25  250.0   2.5E+09" )
(" ",6X,"-3  15.25  HELLO  T" )
(" ",6X,"1  3  5  7  9" )
(" ",6X,"2")
(" ",6X,"2.5  2.5D-10  2.5D+10" )
(" ",6X,"2.5")
(" ",6X,"3.25")
(" ",6X,"5  5  5  5  5  OR  5*5" )
(" ",6X,"5 O'CLOCK")
(" ",6X,"ONE  TWO  THREEFOUR " )
(" ",6X,"T  F  T")
(" ",8X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" )
(" ",8X,"TEST DATE*TIME= " ,A17,"     COMPILER= " ,A20)
(" ",8X,"TEST DATE*TIME= " ,A17,"  -  COMPILER= " ,A20)
(" **** ASSIGN FORMAT NUMBER TO INTEGER VARIABLE ****" )
(" 123456789012345678901234567890123456789012345678901234" )
(" NEXT LINE CONTAINS 54 CHARACTERS" )
(" THERE ARE FOUR  BLANK LINES BEFORE THIS LINE" )
(" THERE ARE THREE BLANK LINES BEFORE THIS LINE" )
(" THERE ARE TWO BLANK LINES BEFORE THIS LINE" )
(" THERE IS ONE BLANK LINE BEFORE THIS LINE" )
(" THEREFORE TESTS 25 THROUGH 29     ARE   DELETED." )
(" THEREFORE TESTS 30 THROUGH 32     ARE   DELETED." )
(" THEREFORE TESTS 33 AND 34     ARE   DELETED." )
(" WRITTEN BUT 143 RECORDS SHOULD HAVE BEEN WRITTEN." )
("0",8X,"TEST OF ACOS" )
("0",8X,"TEST OF ASIN" )
("0",8X,"TEST OF DACOS" )
("0",8X,"TEST OF DASIN" )
("1")
("1", 26X,I1)
("1","     THIS IS FIRST LINE ON PAGE" )
()
(-1P,2F8.1, +1P, 2X,(F8.1))
(/ 08X, "TEST OF ANINT" )
(/ 08X, "TEST OF ATAN2" )
(/ 08X, "TEST OF CCOS" )
(/ 08X, "TEST OF DATAN2" )
(/ 08X, "TEST OF DCOSH" )
(/ 08X, "TEST OF IDIM" )
(/ 08X, "TEST OF REAL" )
(/ 08X, "TEST WITH DOUBLE PRECISION ARGUMENTS" )
(/ 8X, "TEST OF ABS" )
(/ 8X, "TEST OF AIMAG" )
(/ 8X, "TEST OF AINT" )
(/ 8X, "TEST OF AMAX0" )
(/ 8X, "TEST OF AMAX1" )
(/ 8X, "TEST OF AMIN0" )
(/ 8X, "TEST OF AMIN1" )
(/ 8X, "TEST OF AMOD" )
(/ 8X, "TEST OF ATAN" )
(/ 8X, "TEST OF CMPLX" )
(/ 8X, "TEST OF CONJG" )
(/ 8X, "TEST OF COSH" )
(/ 8X, "TEST OF CSIN" )
(/ 8X, "TEST OF DATAN" )
(/ 8X, "TEST OF DDIM" )
(/ 8X, "TEST OF DIM" )
(/ 8X, "TEST OF DSINH" )
(/ 8X, "TEST OF FLOAT" )
(/ 8X, "TEST OF IABS" )
(/ 8X, "TEST OF ISIGN" )
(/ 8X, "TEST OF MAX0" )
(/ 8X, "TEST OF MAX1" )
(/ 8X, "TEST OF MIN0" )
(/ 8X, "TEST OF MIN1" )
(/ 8X, "TEST OF MOD" )
(/ 8X, "TEST OF NINT" )
(/ 8X, "TEST OF SIGN" )
(/ 8X, "TEST OF SINH" )
(/ 8X, "TEST WITH REAL ARGUMENTS" )
(// 8X, "TEST OF DINT" )
(// 8X, "TEST OF DPROD" )
(/17X,"COMPUTED: " ,22X,"3 COMPUTED LINES EXPECTED" )
(/17X,"COMPUTED: " ,22X,"4 COMPUTED LINES EXPECTED" )
(/17X,"COMPUTED: " ,22X,"5 COMPUTED LINES EXPECTED" )
(/2X, " LSTDI1 - (370) " , " LIST DIRECTED INPUT FOR SUBSET DATA TYPES" // 3X," ANS REF. - 13.6  12.4" )
(/49X,"THIS TEST CONTAINS 5 GROUPS" )
(/8X, "CHARACTER EXPRESSION AS FORMAT" /)
(/8X, "COMPLEX EDITING AND OUT OF RANGE" /)
(/8X, "D CONVERSION TEST" /)
(/8X, "INTEGER EDITING AND OUT OF RANGE" /)
(/8X, "LEADING BLANK INSERTION TEST" /)
(/8X, "SCALE FACTOR ON READ" /)
(/8X, "SCALE FACTOR ON WRITE" /)
(/8X, "TEST UNSUBSCRIPTED ARRAY NAMES IN I/O LISTS " /)
(/8X,"BZ, BN, T, TL AND TR EDIT DESCRIPTOR" /)
(/8X,"COMPLEX CONVERSION TEST" /)
(/8X,"DOUBLE PRECISION EDITING AND OUT OF RANGE" /)
(/8X,"G CONVERSION TEST" /)
(/8X,"SS AND SP EDIT DESCRIPTOR" /)
(/8X,"SUBROUTINE CALL" /)
(/8X,'COLON EDIT DESCRIPTOR'/)
(10X,"(10X,I1,3X,I2,3X,I3,3X,I4,3X,I5)" )
(10X,"FILE I06 CREATED WITH 137 SEQUENTIAL RECORDS"  )
(10X,"FILE I06 CREATED WITH 28 SEQUENTIAL RECORDS" )
(10X,"FILE I06 CREATED WITH 31 SEQUENTIAL RECORDS" )
(10X,"FILE I07 CREATED WITH 31 SEQUENTIAL RECORDS" )
(10X,"FILE I08 CREATED WITH 28 SEQUENTIAL RECORDS" )
(10X,"FILE I08 CREATED WITH 31 SEQUENTIAL RECORDS" )
(10X,"FILE I09 CREATED WITH 31 SEQUENTIAL RECORDS" )
(10X,"FILE ON LUN " ,I2," OK... ",I3," RECORDS")
(10X,"NEXT TWO LINES ARE IDENTICAL" )
(10X,"TEST ",I2)
(10X,"TEST ",I5)
(10X,E8.2E2)
(10X,I1,3X,I2,3X,I3,3X,I4,3X,I5)
(10X,I2,3X,I3,3X,I4,3X,I5,3X,I6)
(11X)
(11X,"COMPUTED: " ,I5,1X,F5.2)
(11X,"THIS TEST PRINTS -1 UNDER I2 DESCRIPTOR" )
(11X,"THIS TEST PRINTS -15555 UNDER DESCRIPTOR I6" )
(11X,"THIS TEST PRINTS -22 UNDER I3 DESCRIPTOR" )
(11X,"THIS TEST PRINTS -333 UNDER I4 DESCRIPTOR" )
(11X,"THIS TEST PRINTS -4444 UNDER I5 DESCRIPTOR" )
(11X,"THIS TEST PRINTS 15 UNDER I2 DESCRIPTOR" )
(11X,"THIS TEST PRINTS 291 UNDER I3 DESCRIPTOR" )
(11X,"THIS TEST PRINTS 4321 UNDER I4 DESCRIPTOR" )
(11X,"UNDER FORMAT 10X,I2,3X,I3,3X,I4,3X,I5,3X,I6" )
(11X,"UNDER I5 NUMERIC FIELD DESCRIPTOR" )
(11X,A7)
(11X,D14.9)
(11X,E7.2)
(11X,I2)
(11X,I3)
(11X,I4)
(11X,I5)
(11X,I5,3X,I5,3X,I5,3X,I5,3X,I5)
(11X,I6)
(12X,2I4,59X,A1)
(12X,2I4,60X)
(13X,D10.5)
(15X,"  FORMAT('   SKIP 2 LINES'   //)"  //)
(15X,"  FORMAT('   SKIP 3 LINES '  ///)"  ///)
(17X,"ONE BLANK LINE SHOULD APPEAR ABOVE" )
(17X,"THREE BLANK LINES SHOULD APPEAR ABOVE" )
(17X,"TWO BLANK LINES SHOULD APPEAR ABOVE" )
(18X,"THIS TEST PRINTS 5, -54, 543, -5432, AND 32000" )
(19X,L6)
(1PE10.3, -1PE10.2, E10.3)
(1X, 2F5.2, F10.2, F10.5, TL40, 1X, 2E5.2, E10.2, E10.5E5)
(1X,2X,I3,4X,"INSPECT",5X, I5, 5X, I5)
(1X,A,A)
(1X,E8.4E1)
(1X,E9.4)
(1X,I5,1X,I4)
(2(2(E10.5,1X),2X),2(E10.4E2,1X),1X,2(E12.5E4,1X))
(2(2(G7.5,1X),2X),2(G10.4E2,1X),1X,2(G11.7E4,1X))
(2(E6.2E1,1X),1X,2(E7.2E2,1X),1X,2(E9.2E3,1X))
(2(F7.3), 2(E12.5))
(2(G9.4,1X),2(G10.4E2,1X),2(G11.5E3,1X))
(20X,10X,A)
(20X,10X,A10,35X)
(20X,10X,A5,40X)
(20X,10X,A50)
(20X,4A,42X,A1)
(23X, " IFIX", 5X,  " INT ")
(23X,E17.6)
(23X,F8.1)
(23X,I10)
(23X,I6, F6.2, E10.2, E9.1)
(24X,D19.10)
(25X,  '  = + - * / ( ) , . ''')
(25X, 2F6.2, (((4(1X, F6.2)))))
(25X, 4(1X, I6))
(25X, 8(1X, I5))
(25X,"  999")
(25X,"  = + - * / ( ) , . '" )
(25X," AROUND THE WORLD IN 80 DAYS  " )
(25X,D18.10)
(25X,I5)
(25X,L3)
(26X, "1.0  5.5")
(26X, "9.91.19.92.29.93.39.94.4" )
(26X, A32, :, 'IIIIJJJJ')
(26X,"    +1.0    +5.5" )
(26X,"   +9.9   +5.5" )
(26X,"  +0.1D+00" /26X,"  +0.1E+00" /26X,"  +0.1+000" )
(26X,"  +9.9  +5.5" )
(26X," +0.1D+00"/26X," +0.1E+00"/26X," +0.1+000")
(26X," +1.0 +5.5" )
(26X," +6666 +5555 4444 333 22 1" )
(26X," 5555 4444" )
(26X,"+0.1D+06"/26X,"+0.1E+06"/26X,"+0.1+006")
(26X,"----HHHH....NNNN" )
(26X,"-0.334D-04" /26X,"-0.334E-04" /26X,"-0.334-004" )
(26X,"1 22 333 4444 +5555  +6666" )
(26X,"112123123412345123456" )
(26X,"123.00  456.88" )
(26X,"22.0  66.6" )
(26X,"33.1234  55.0789" )
(26X,"9.95.59.96.69.97.79.98.8" )
(26X,"ONE THREE FIVE SEVEN NINE ELEVEN" )
(26X,"TO BE OR NOT TO BE  " )
(26X,'----HHHH....NNNN'/26X,3(A4),A4)
(26X,-2PE12.4,2PF12.2,1PD12.4,2PG16.4)
(26X,2(F5.1))
(26X,2(F6.1))
(26X,2(F7.1))
(26X,2(F8.1))
(26X,2PF12.2,-2PE12.4,F12.4,1PG12.2,D12.4)
(26X,3(A))
(26X,4(D9.2) / 26X,4(D9.2))
(26X,4(D9.2))
(26X,6A)
(26X,8(F3.1) / 26X,8(F3.1) / 26X,8(F3.1))
(26X,8(F3.1) / 26X,8(F3.1))
(26X,9A4/25X,A5,A6)
(26X,A1,A2,A3,A4,A5,A6/23X,4(A4),A4,A4)
(26X,A20)
(26X,A3,A6,A5,A6,A5,A7)
(26X,A4,A4,4A4/26X,A6,A5,A4,A3,A2,A1)
(26X,D10.1)
(26X,D10.3 / 26X,D10.3)
(26X,D11.1)
(26X,D12.1)
(26X,D12.4,E12.4,F12.3)
(26X,D12.4,G16.4)
(26X,D14.7)
(26X,D16.9 /26X,D16.9)
(26X,D18.11)
(26X,D21.14 / 26X,D21.14 / 26X,D21.14)
(26X,D8.1)
(26X,D9.1)
(26X,E10.3,2X,E10.3)
(26X,E10.3,2X,F4.1)
(26X,E11.4,2X,E11.4)
(26X,E14.7,2X,E14.7)
(26X,E8.1,2X,E8.1)
(26X,F12.4,E12.4,F12.2,F12.3)
(26X,F3.1,2X,F3.1)
(26X,F4.1,2X,F4.1)
(26X,F5.2,2X,E11.4)
(26X,F6.2,2X,F6.2)
(26X,F7.4,2X,F7.4)
(26X,G14.4,4X,2G11.4 / 26X,G14.4,4X,2G11.4)
(26X,I5,1X,I4)
(27(F2.1)/5(L1),5L1)
(27X,"       7.123456" )
(27X,"      6.55555" )
(27X,"     22")
(27X,"     5.4444" )
(27X,"     T   F         T    F" )
(27X,"    22")
(27X,"    9.999")
(27X,"   22")
(27X,"   8.88")
(27X,"  22")
(27X,"  7.7")
(27X,"  8")
(27X,".55555  0." )
(27X,"2.12.12.12.12.1666.3334.3334.3334.333" )
(27X,"333.",4X,"4444.")
(27X,"333333111112222222255555444444444444" )
(27X,"5.44446.5555533.133.133.133.1444.1" )
(27X,"5555.15555.1  66666.166666.1  44.22"  )
(27X,"666  777777  8" )
(27X,"7.7123456.7" )
(27X,"8.889.9997.123456" )
(27X,"T   F   F  T T  FTF" )
(27X,1PE12.2,   -2PE12.4,  2PF12.2 )
(27X,2(F6.1),2X,2F7.1  ,2X,F5.2)
(27X,2(I3),1(I5), 4I2 ,5I1,3 I4 )
(27X,2PF12.2, -2PE12.4,F12.4)
(27X,5(F3.1),F7.3,3F5.3  )
(27X,E10.2)
(27X,E10.3,2X,E11.4)
(27X,E12.3)
(27X,E12.5,2X,E13.6)
(27X,E14.4)
(27X,E14.7)
(27X,E16.5)
(27X,E18.6)
(27X,E20.7)
(27X,E8.1,2X,E9.2)
(27X,F11.4)
(27X,F12.4, E12.4, F12.2)
(27X,F13.5)
(27X,F15.6)
(27X,F3.1,F8.1)
(27X,F4.0,4X,F5.0)
(27X,F4.2,F5.3,F8.6)
(27X,F5.1)
(27X,F6.4,F7.5,4F4.1,F5.1)
(27X,F6.5,2X,F2.0)
(27X,F7.2)
(27X,F9.3)
(27X,I3)
(27X,I3,2X,3I2,2X,I1)
(27X,I4)
(27X,I4," **",1(27X,I4," ''",(I4," ((")))
(27X,I4,I5,I6)
(27X,I5)
(27X,I6)
(27X,I7)
(27X,L53)
(27X,L6, L4, L10, L5)
(2F5.2, F14.0 / E25.20, F5.2, 51X)
(2PF8.3,-2PE9.4,F9.4,0PF9.4,9X,-2PE9.4,F9.4)
(2PF8.3,-2PE9.4,F9.4,0PG9.4,D9.4,-2PE9.4,F9.4,D9.4,2PG9.4)
(2X, F3.0, F5.0, F5.5, F1.0)
(2X, F7.2)
(2X,"  END EMPTY FORMAT TEST" )
(2X,2(F6.1),2X,2F7.1  ,2X,F5.2)
(2X,2(I2,I2),/,2(2(I2,I2)),2(L1,L1),2(F3.1,F3.1),F3.1)
(2X,2(I3),1(I5), 4I2 ,5I1,3 I4 )
(2X,4(2X),5(D9.2)/4(2(F3.1)))
(2X,4(F4.1)/5(I2))
(2X,5(F3.1),F7.3,3F5.3  )
(2X,8(F3.1),8F3.1/8(2(F3.1)))
(2X,F3.1,F8.1)
(2X,F4.2,F5.3,F8.6)
(2X,F6.4,F7.5,4F4.1,F5.1)
(2X,I3)
(2X,I3,2X,3I2,2X,I1)
(3(26X,F7.2,E11.4/))
(3X, I5)
(3X,"THIS TEST PRINTS 1, 22, 333, 4444, AND 25555 UNDER" )
(4(D9.2),4D9.2/2X,4(D9.2))
(4(I5), 4(F3.1), 4(F11.4)/ 4(E15.8))
(49X,"- EACH TEST HAS TWO PARTS." )
(4A4)
(4X,A4)
(5(26X,D11.2/))
(55X,20X,4X,L1)
(55X,20X,L5)
(58X,L15,L7)
(5X,"LAST LINE ON THIS PAGE" )
(60X,L10,L10)
(64X,4L4)
(67X,L6,L7)
(68X,L6,L6)
(6X,"IVON01 =",I5,3X,"IVON02 =",I5)
(70X,10A)
(70X,10A1)
(74X,6A)
(74X,6A1)
(75X,5L1)
(76X,L2,L2)
(78X,L1,L1)
(7X,I3,6X,I4,4X,I6,15X,A1,8X,I6,4X,F6.4,9X,A1 )
(7X,I3,6X,I4,5X,I5,15X,A1,9X,I5,5X,F5.4,9X,A1 )
(7X,I3,6X,I4,I5,15X,A1,9X,I5,5X,F5.4,9X,A1 )
(7X,I3,6X,I4,I6,14X,A1,9X,I6,4X,F6.4,7X,A2,5X )
(8X,"THIS TEST PRINTS -9, -88, -777, -6666, AND -25555" )
(8X,I2)
(9A4, A6, A5)
(9X,A1)
(A, 2A, 3(A))
(A1, A2, 1A3, A4, A5, 1(A6), A4, 2A4, 3(A4))
(A120)
(A27)
(A29/A,2A)
(A3)
(A4 / 2A4)
(A4)
(A43, A7, A2)
(A5, F10.5, BZ, A5, BN, A20)
(A6, A1, 2A2, A3, A3, A6, A5, A11, A7, A3)
(BN, D5.2, BZ, D5.2, TL40, 2F5.2, T1, TR1, TL1, BN, 2F5.1)
(BZ, (I5, F5.0, BN, F5.2, 2I5))
(BZ, I5, F5.1, BN, F5.1, I5, BZ, F5.1, I5)
(BZ,(2I4, E10.1, BN, 2I4, F5.2, BZ, F5.2, BN, E10.1))
(D10.5,1X,D10.5,/,D10.5,/,D10.5,//,D10.5)
(D10.5,1X,F10.5,1X,D11.5,G11.5)
(D10.5,1X,F10.5,D11.5,G11.5)
(D12.7)
(E11.6E2/1X,E10.5E2/2X,2(E9.4E2,3X)//4X,E7.2E2)
(E12.5, (F8.4,  E17.10))
(E12.5,/,E12.5)
(E12.5,1X,E12.5)
(E12.6, D15.7, I4, F11.5, L2, A25, 30X, ' LASTS RECORD')
(E12.6, D15.7, I4, F11.5, L2, A25, A51)
(E12.6, D15.7, L2, I4, F11.5, A25, A51)
(E13.6)
(E8.1,E9.2,E10.3,E11.4,E12.5,E13.6,E14.7)
(F10.5, I5, A20, D14.8, E14.6, L10, 35X, 'STOP  RECORD')
(F10.5, I5, A20, D14.8, E14.6, L10, A47)
(F10.5,1X,F10.5)
(F18.11/E18.11)
(F3.1)
(F3.1)
(F4.1)
(F4.2)
(F4.2, (2(E10.3)), I2)
(F5.2, E11.4, E10.3, F4.1, 3(F5.2,E11.4))
(F7.3,1X,F7.3,1X,F10.5,1X,D13.5)
(F7.3,1X,F7.3,1X,F10.5,1X,E13.5E2)
(F7.3,1X,L5,1X,I5,1X,A5,1X,'PROGRAMS',1X,"ONE")
(F7.3,1X,L5,1X,I5,1X,A5,1X,A8)
(F8.2,E9.4,F9.2,F9.3,9X,E9.4,F9.4)
(F8.2,E9.4,F9.2,G9.3,D9.0,E9.4,F9.4,D9.2,G9.4)
(F9.4,1X,E9.4,1X,L1,1X,D12.5,1X,G9.4,A8)
(F9.4,1X,I4,1X,"BVS",1X,F9.4,1X,L1,1X,A3)
(F9.4,1X,I4,1X,BN,F9.4,1X,L1,1X,A4,1X,BZ,F6.4)
(F9.5, 1X, E9.3, 1X, 2PF7.4)
(G12.5,1X,G14.5E3,1X,G10.5E2)
(G14.8, A20, L2, A, A4, A12)
(I1,F4.2,E9.2,F8.1)
(I2)
(I2,1X,F6.3,D10.5,L2,A8,E10.5,:,I5,2X,F10.4)
(I3, 2I2, 3I3, I4, 60A1 )
(I3,I2,I4,I3,2I4,10X,A)
(I3,I2,I4,I3,2I4,10X,A50)
(I3,I2,I4,I3,2I4,38X,"THIS IS ALLOWED" ,"FINALLY")
(I3,I2,I4,I3,2I4,40X,"         T" ,"         F" )
(I3,I2,I4,I3,2I4,40X,"  .TIME.  " ,"  .FIELD. " )
(I3,I2,I4,I3,2I4,44X,"   T   T   F   F" )
(I3,I2,I4,I3,2I4,47X,".TRUE.",".FALSE.")
(I3,I2,I4,I3,2I4,48X,"    .T","    .F")
(I3,I2,I4,I3,2I4,48X,"TRUE  ","FALSE ")
(I3,I2,I4,I3,2I4,50X,10A)
(I3,I2,I4,I3,2I4,50X,10A1)
(I3,I2,I4,I3,2I4,54X,6A)
(I3,I2,I4,I3,2I4,54X,6A1)
(I3,I2,I4,I3,2I4,55X,"TFTFT")
(I3,I2,I4,I3,2I4,55X,4X,L1)
(I3,I2,I4,I3,2I4,55X,L5)
(I3,I2,I4,I3,2I4,56X,".T",".F")
(I3,I2,I4,I3,2I4,58X,"T","F")
(I3,I2,I4,I3,2I4,59X," ")
(I4, (F6.3), E11.4)
(I4, 2(I1,1X,I2))
(I4,1X,E9.4,1X,D10.4,1X,L4,1X,F12.5,1X,A8)
(I4,1X,E9.4,D10.4,1X,L4,1X,F12.5,1X,A8)
(I5)
(I5, A5, F10.5, E14.6, A20, D14.8)
(I5, F10.5, D14.8, L10, A20, E14.6, A47)
(I5, F10.5, E14.6, D14.8, L10, A20, 30X, 'THE LAST REC')
(I5, F10.5, E14.6, D14.8, L10, A20, 35X, ' LAST RECORD')
(I5, F10.5, E14.6, D14.8, L10, A20, A47)
(I5, F11.5, E13.6, D14.8, A20, L10, 35X, 'NEW  RECORD ')
(I5, F11.5, E13.6, D14.8, A20, L10, A47)
(I5, I5.3, F10.5, E14.6, E20.1E4, D14.8)
(I5,/,D10.5,//,1X,L6,1X,2(E10.3,1X),/,A8)
(I5,1X,F8.3,1X,L5,1X,A4)
(I5/E10.5E2//1X,L6,2(1X,E10.3)/A8)
(I6.6, T1, I6.4, TL6, I6.2, TL9, I6.0)
(L1,S,F7.2,A8,SP,D11.5,6X,SS,I2,:,F9.3)
(L1,T5,F5.2,A8,TR2,D8.4,TL8,F6.4,4X,I1)
(L1,T5,F5.2,A8,TR2,E10.4E2,TL10,F6.4,6X,I1)
(L4)
(L6)
(S,I2,1X,SP,F7.3,SS,1X,D10.5,L2,1X,A8,1X,E10.5,:,I5,F10.4)
(SP, I5, S, F10.5, SS, I5, 3PE14.6E2)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]