1! { dg-do run } 2! PR 16908 3! Segfaulted on second set of writes. We weren't handling partial records 4! properly when calculating the file position. 5program direct_io_1 6 implicit none 7 8 integer n, nt, mt, m 9 real dt, tm, w 10 real, allocatable :: p(:) 11 12 nt = 2049 ! if nt < 2049, then everything works. 13 14 allocate(p(nt)) 15 p = 0.e0 16 17 inquire(iolength=mt) (p(m), m=1, nt) 18 19 open(unit=12, file='syn.sax', access='direct', recl=mt) 20 n = 1 21 write(12, rec=n) mt, nt 22 write(12, rec=n+1) (p(m), m=1, nt) 23 close(12) 24 25 inquire(iolength=mt) (p(m), m=1, nt) 26 27 open(unit=12, file='syn.sax', access='direct', recl=mt) 28 n = 1 29 write(12, rec=n) mt, nt 30 write(12, rec=n+1) (p(m), m=1, nt) 31 close(12, status='delete') 32end program 33