Tapes to be sent off-site should be UNLABELLED
,
because labels create nothing but trouble to the receiver.
Exchange-mode tape files cannot be handled with Fortran I/O on several UNIX machines. For these machines one has to use the L mode, reading through the C Library interface, see the next paragraph.
Assuming that the name of the tape drive is /dev/rxt00h
:
Open the file and initialize FZ:
OPEN (Lun, FILE='/dev/rxt00h', RECORDTYPE='FIXED' +, RECL=3600, BLOCKSIZE=3600, FORM='UNFORMATTED') CALL FZFILE (Lun, 900, 'TX') for input or CALL FZFILE (Lun, 900, 'TXO') for output
Assuming that the name of the tape drive is /dev/mt12
:
Open the file and initialize FZ:
OPEN (Lun, FILE='/dev/mt12', RECORDTYPE='FIXED' +, RECL=3600, BLOCKSIZE=3600, FORM='UNFORMATTED') CALL FZFILE (Lun, 900, 'TX') for input or CALL FZFILE (Lun, 900, 'TXO') for output
One may stage a file to or from disk with:
tape to disk: RWMT -R -UNLAB -RAW -F 1 -RL 3600 -BL 3600 pathname disk to tape: RWMT -W -UNLAB -RAW -F 1 -RL 3600 -BL 3600 pathname
If one has an on-line tape unit, one may connect the tape
to a pathname
with
EDMTDESC pathname -C -S LAB NO RF F BL 3600 RL 3600 ASCNL NO
If the file is read with IOPACK on 'unit' 24:
To inform the system of the intention to use a tape drive one should give right at the beginning of the JCL:
/*UNIT T6250=1 (or T1600)
JCL for the file, if unlabelled:
//G.IOFILE24 DD DSN=dsname,DISP=(SHR,KEEP), // DCB=(RECFM=U,BLKSIZE=3600), // UNIT=T6250,LABEL=(1,NL,,IN),VOL=SER=tapvsn
Initialize FZ for this file:
CALL FZFILE (24, 900, 'TXY')
To deprotect the tape start the JCL with:
/*UNIT T6250=1 (or T1600) // EXEC RING,TAPE=tapvsn
JCL for the file, if unlabelled:
//G.IOFILE24 DD DSN=dsname,DISP=(NEW,KEEP), // DCB=(RECFM=U,BLKSIZE=3600), // UNIT=T6250,LABEL=(1,NL,,OUT),VOL=SER=tapvsn
Initialize FZ for this file:
CALL FZFILE (24, 900, 'TXYO')
To inform the system of the intention to use a tape drive one should give right at the beginning of the JCL:
input: SETUP TAPE 181 tapevsn NL 6250 (END or SETUP TAPE 181 tapevsn NL 38K (END output: SETUP TAPE 181 tapevsn NL 6250 RING (END or SETUP TAPE 181 tapevsn NL 38K RING (END
Fortran: JCL for file 24, say, if unlabelled:
FILEDEF 24 TAP1 NL 1 (RECFM U BLKSIZE 3600 PERM
Initialize FZ for this file:
CALL FZFILE (24, 900, 'TXF') for input or CALL FZFILE (24, 900, 'TXFO') for output
IOPACK: JCL for file 24, say, if unlabelled:
FILEDEF IOFILE24 TAP1 NL 1 (RECFM U BLKSIZE 3600 PERM
Initialize FZ for this file:
CALL FZFILE (24, 900, 'TXY') for input or CALL FZFILE (24, 900, 'TXYO') for output
Take out the write ring, mount the tape and give it a logical name with:
normally: $ ASSIGN MTA0: zname $ ALLOC zname $ MOUNT zname/FOREIGN/DENS=6250/BLOCKSIZE=3600/RECORDSIZE=3600 at CERN cluster VXCERN: $ SETUP/BLOCK=3600/RECORD=3600/NOLABEL tapid vid zname
Open the file and initialize FZ:
OPEN (Lun, FILE='zname', STATUS='OLD' +, FORM='UNFORMATTED', READONLY) CALL FZFILE (Lun, 900, 'TX')
The specifications RECORDTYPE='FIXED',RECL=900,BLOCKSIZE=3600
could be given,
but they are not needed as they are taken from the MOUNT.
(They must be specified on the MOUNT,
or else the file will not be read correctly.)
Put a write ring; assign and mount as for input:
normally: $ ASSIGN MTA0: zname $ ALLOC zname $ MOUNT zname/FOREIGN/DENS=6250/BLOCK=3600/RECORD=3600 at CERN cluster VXCERN: $ SETUP/WRITE/BLOCK=3600/RECORD=3600/NOLABEL tapid vid zname
Open the file and initialize FZ:
OPEN (Lun, FILE='zname', STATUS='NEW', RECORDTYPE='FIXED' +, RECL=900, BLOCKSIZE=3600, FORM='UNFORMATTED') CALL FZFILE (Lun, 900, 'TXO')