rankin@EQL.Caltech.EDU (Pat Rankin) (04/21/87)
It is no longer necessary to resort to MACRO or USEROPEN routines in order to use SYS$FLUSH to flush RMS output buffers from Fortran. The run-time library contains a routine (FOR$RAB) that returns a pointer to the necessary RMS data structure. INTEGER *4 rabadr, FOR$RAB, sts, SYS$FLUSH ... c open the file for shared access OPEN ( lunit, SHARED, ... c get the address of the RMS Record Access Block rabadr = FOR$RAB( lunit) ... c add a record to the file--it will not show up yet if the I/O is buffered WRITE ( lunit, ... c flush the output buffer so that others can read our last record sts = SYS$FLUSH( %VAL(rabadr), , ) !2nd & 3rd args not used here ... Pat Rankin