1! pr 15472
2! sequential access files
3!
4!  this test verifies the most basic sequential unformatted I/O
5!      write 3 records of various sizes
6!      then read them back
7!      and compare with what was written
8!
9       implicit none
10       integer size
11       parameter(size=100)
12       logical debug
13       data debug /.FALSE./
14! set debug to true for help in debugging failures.
15       integer m(2)
16       integer n
17       real*4 r(size)
18       integer i
19       m(1) = Z'11111111'
20       m(2) = Z'22222222'
21       n    = Z'33333333'
22       do i = 1,size
23         r(i) = i
24       end do
25       write(9)m  ! an array of 2
26       write(9)n  ! an integer
27       write(9)r  ! an array of reals
28! zero all the results so we can compare after they are read back
29       do i = 1,size
30          r(i) = 0
31       end do
32       m(1) = 0
33       m(2) = 0
34       n = 0
35
36       rewind(9)
37       read(9)m
38       read(9)n
39       read(9)r
40!
41! check results
42       if (m(1).ne.Z'11111111') then
43         if (debug) then
44            print '(A,Z8)','m(1) incorrect.  m(1) = ',m(1)
45         else
46            STOP 1
47         endif
48       endif
49
50       if (m(2).ne.Z'22222222') then
51         if (debug) then
52            print '(A,Z8)','m(2) incorrect.  m(2) = ',m(2)
53         else
54            STOP 2
55         endif
56       endif
57
58       if (n.ne.Z'33333333') then
59         if (debug) then
60            print '(A,Z8)','n incorrect.  n = ',n
61         else
62            STOP 3
63         endif
64       endif
65
66       do i = 1,size
67          if (int(r(i)).ne.i) then
68            if (debug) then
69              print*,'element ',i,' was ',r(i),' should be ',i
70            else
71              STOP 4
72            endif
73          endif
74       end do
75! use hexdump to look at the file "fort.9"
76       if (debug) then
77         close(9)
78       else
79         close(9,status='DELETE')
80       endif
81       end
82