[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference noted::hackers_v1

Title:-={ H A C K E R S }=-
Notice:Write locked - see NOTED::HACKERS
Moderator:DIEHRD::MORRIS
Created:Thu Feb 20 1986
Last Modified:Mon Aug 03 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:680
Total number of notes:5456

355.0. "FORTRAN Tape I/O to block records?" by LA780::LONGO (Bob Longo) Fri Nov 14 1986 15:37

    I am trying to write a tape from FORTRAN with blocked records, but
    am having two problems:
    
    	1) The records are not coming out blocked
    	2) FORTRAN I/O does not seem to buffer output so the tape drive
    	   streams.
    
    I am trying to create an IBM format tape (EBCDIC label and data)
    by mounting the tape /FOREIGN, then opening the tape with
    "STATUS='NEW',RECL=80,RECORDTYPE='FIXED'" to write the label, then
    STATUS='NEW',RECL=133,BLOCKSIZE=2660,RECORDTYPE='FIXED',FORM='FORMATTED'
    to write the data.  I am using formatted IO (133A1) to write the
    data, but it doesn't come out blocked, and the tape does not stream.
    
    Has anyone else tried to do this type of tape I/O successfully from
    FORTRAN?  What am I doing wrong?  Do I have to use $QIOs to do what
    I want?
    
    Thanks,
    -Bob Longo
T.RTitleUserPersonal
Name
DateLines
355.1(almost) certainlyDYO780::DYSERTBarry DysertMon Nov 17 1986 11:4911
    Off hand, I'd say you can certainly do what you want through Fortran.
    The only thing preventing me from saying it for sure is that I've
    never done it.  Three ideas immediately come to mind:
    
    1. At first glance I think you should try writing each record as A133
       instead of 133A1.
    
    2. There is an ETAPE program from DECUS that lets you mess with EBCDIC
       tapes quite well.  (Send me mail if you want a copy.)

    3. If neither of these ideas proves fruitful, post a note in TLE::FORTRAN.