Download Fortran Library Reference
Transcript
INTEGER*4 trewin
n = trewin ( tlu )
INTEGER*4
tlu
Input
Tape logical unit, in range 0 to 7
INTEGER*4
n
Return value
n=0: OK
n<0: Error
If the tape is labeled, then the label is skipped over after rewinding.
Example 1: trewin()—typical fragment:
CHARACTER devnam*9 / "/dev/rst0" /
INTEGER*4 n /0/, tlu /1/, tclose, topen, tread, trewin
…
n = trewin( tlu )
IF ( n .LT. 0 ) STOP "trewin: cannot rewind"
WRITE(*, "("trewin ok:", 2I4, 1X, A10)") n, tlu, devnam
…
END
Example 2: trewin()—in a two-record file, try to read three records, rewind, read
one record:
CHARACTER devnam*9 / "/dev/rst0" /, onerec*512 / " " /
INTEGER*4 n / 0 /, r, tlu / 1 /, topen, tread, trewin
LOGICAL islabeled / .false. /
n = topen( tlu, devnam, islabeled )
IF ( n .LT. 0 ) STOP "topen: cannot open"
DO r = 1, 3
n = tread( tlu, onerec )
WRITE(*,"(1X, I2, 1X, A4)") r, onerec
END DO
n = trewin( tlu )
IF ( n .LT. 0 ) STOP "trewin: cannot rewind"
WRITE(*, "("trewin ok:" 2I4, 1X, A10)") n, tlu, devnam
n = tread( tlu, onerec )
IF ( n .LT. 0 ) STOP "tread: cannot read after rewind"
WRITE(*,"(A4)") onerec
END
The output is:
1 abcd
2 wxyz
3 wxyz
trewin ok: 0 1 /dev/rst0
abcd
FORTRAN Library Routines
99