{   This procedure is called to write a block to a tape file.
{
{   The block passed may be contained in a buffer reserved by a call to
{ BAP$TAPE_BM_RESERVE_BLK_BUFFER, or it may be in some other buffer.
{
{   If the block is in a reserved buffer, that buffer must be the one reserved
{ by the most recent call to BAP$TAPE_BM_RESERVE_BLK_BUFFER.  If it is not the
{ most recent block reserved, an error status condition of
{ BAE$UNRESERVED_BUFFER_USED will be returned.
{
{   If the block is not in a reserved buffer the call implicitly releases all
{ reserved buffers.  A new block reservations must be acquired by calling
{ BAE$TAPE_BM_RESERVE_BLK_BUFFER.
{
{   Tape I/O errors are indicated by both an abnormal status and a value in
{ the tape_failure_isolation.  If an error is detected on a block other than
{ the one being WRITE_NEXTed a status condition of
{ BAE$WRITE_ERROR_PREVIOUS_BLOCK will be returned.  If the error is detected
{ on the block being written by this call the condition is
{ BAE$WRITE_ERROR_THIS_BLOCK.  If media_recovery is TRUE, the tape will be
{ positioned before after the block just (improperly) written.  If
{ media_recovery is FALSE, the tape will be positioned after the bad block.
{
{   Recovery from a write error depends upon when the error is detected.  If
{ the error occured on the block just written the caller may be able to take
{ action to avoid the error (such as a backspace and a call to
{ BAP$TAPE_BM_ERASE_BLOCK) and re-write the block.  It may also be reasonable
{ to retry the write with system_media_recovery.  If the error occured on some
{ previous block there is nothing that can be done to correct just the one
{ block.  If an error free tape is desired the tape must be rewound (or
{ skipped backwards to some place that the caller knows is before any error,
{ such as the location the tape was opened at) and begin again from there.
{
{   BAP$TAPE_BM_WRITE_NEXT_BLOCK(FILE_IDENTIFIER, BLOCK_PTR, LENGTH,
{ MEDIA_RECOVERY, FORCE_WRITE, FAILURE_MODES, STATUS)
{
{   FILE_IDENTIFIER (Input):  The file identifier for the file.
{
{  BLOCK_PTR:  (Input) A pointer to the block to be written.
{
{  LENGTH:  (Input) The length of the block in bytes.
{
{  MEDIA_RECOVERY:  (Input) TRUE to have the system attempt recovery from
{        media errors encountered when writing this block to tape.  FALSE to
{        suppress any attempt by the system to recover from media errors.
{
{  FORCE_WRITE:  (Input) TRUE forces the tape mark and any buffered blocks or
{        tape marks to be written to tape before the procedure returns.  FALSE
{        allows block management to buffer the write to allow greater
{        efficiency.
{
{  FAILURE_ISOLATION:  (Output) Detailed information on any tape I/O error.
{
{  STATUS: (output) Request status.
{
{
{
{
{
{
