1! This file is all about BACKSPACE 2! { dg-do run { target fd_truncate } } 3 4 integer i, n, nr 5 real x(10), y(10) 6 7! PR libfortran/20068 8 open (20, status='scratch') 9 write (20,*) 1 10 write (20,*) 2 11 write (20,*) 3 12 rewind (20) 13 read (20,*) i 14 if (i .ne. 1) call abort 15 write (*,*) ' ' 16 backspace (20) 17 read (20,*) i 18 if (i .ne. 1) call abort 19 close (20) 20 21! PR libfortran/20125 22 open (20, status='scratch') 23 write (20,*) 7 24 backspace (20) 25 read (20,*) i 26 if (i .ne. 7) call abort 27 close (20) 28 29 open (20, status='scratch', form='unformatted') 30 write (20) 8 31 backspace (20) 32 read (20) i 33 if (i .ne. 8) call abort 34 close (20) 35 36! PR libfortran/20471 37 do n = 1, 10 38 x(n) = sqrt(real(n)) 39 end do 40 open (3, form='unformatted', status='scratch') 41 write (3) (x(n),n=1,10) 42 backspace (3) 43 rewind (3) 44 read (3) (y(n),n=1,10) 45 46 do n = 1, 10 47 if (abs(x(n)-y(n)) > 0.00001) call abort 48 end do 49 close (3) 50 51! PR libfortran/20156 52 open (3, form='unformatted', status='scratch') 53 do i = 1, 5 54 x(1) = i 55 write (3) n, (x(n),n=1,10) 56 end do 57 nr = 0 58 rewind (3) 59 20 continue 60 read (3,end=30,err=90) n, (x(n),n=1,10) 61 nr = nr + 1 62 goto 20 63 30 continue 64 if (nr .ne. 5) call abort 65 66 do i = 1, nr+1 67 backspace (3) 68 end do 69 70 do i = 1, nr 71 read(3,end=70,err=90) n, (x(n),n=1,10) 72 if (abs(x(1) - i) .gt. 0.001) call abort 73 end do 74 close (3) 75 stop 76 77 70 continue 78 call abort 79 90 continue 80 call abort 81 82 end 83