|
|
1.1 ! root 1: .TI F77/IO_INTRO "Sep. 4, 1985" ! 2: F77 I/O - Introduction ! 3: ! 4: By default, Fortran units 5, and 6 are connected to standard input and ! 5: standard output and unit 0 is connected to standard error. ! 6: ! 7: A 'read' with no unit number reads from unit 5; a 'print' writes ! 8: to unit 6. Thus, the default is that ! 9: ! 10: .nf ! 11: read 8010, ... ! 12: read (5,8010) ... ! 13: read (*,8010) ... ! 14: .fi ! 15: ! 16: read from standard input (the terminal), ! 17: ! 18: .nf ! 19: print 8020, ... ! 20: write (6,8020) ... ! 21: write (*,8020) ... ! 22: .fi ! 23: ! 24: write to standard output (the terminal) and ! 25: ! 26: write (0,8020) ... ! 27: ! 28: writes to standard error (the terminal). ! 29: ! 30: To enter an end-of-file from a terminal, type control-D (type the letter "d" ! 31: while holding down the key labeled "control"). ! 32: ! 33: You can avoid the use of format statements by using list directed I/O. ! 34: For example, the statements ! 35: ! 36: .nf ! 37: read *, i,j,x,y ! 38: print *, i,j,x,y ! 39: .fi ! 40: ! 41: read i, j, x, and y from the terminal and write them back to it. ! 42: ! 43: To read and write from disk files, it is simplest to write your program ! 44: as if you are reading and writing on the terminal. Then use shell ! 45: I/O redirection: ! 46: ! 47: a.out < infile ! 48: ! 49: reads from the file 'infile' instead of the terminal and ! 50: ! 51: a.out > outfile ! 52: ! 53: writes to the file 'outfile' instead of the terminal. These may be ! 54: combined as in: ! 55: ! 56: a.out < infile > outfile ! 57: ! 58: F77 allows unit numbers to be between 0 and 99. If you use a unit number ! 59: N other than 0, 5, or 6, then the default is for it to reference a file ! 60: named 'fort.N'. ! 61: ! 62: Disk files may be explicitly opened for reading and writing with the 'open' ! 63: statement: ! 64: ! 65: open( N, file='filename') ! 66: ! 67: where N is any of 0 ... 99 . ! 68: ! 69: Appropriately named environment variables override default file names ! 70: or file names in 'open' statements. ! 71: The corresponding environment variable name is the same ! 72: as the file name with periods deleted. ! 73: For example, a program containing: ! 74: .nf ! 75: ! 76: open(32,file="data.d") ! 77: read(32,100) vec ! 78: write(44) vec ! 79: ! 80: .fi ! 81: normally will read from file 'data.d' and write to ! 82: file 'fort.44' in the current directory. ! 83: If the environment variables 'datad' and 'fort44' are set: ! 84: .nf ! 85: ! 86: % setenv datad mydata ! 87: % setenv fort44 myout ! 88: ! 89: .nf ! 90: in the C shell or: ! 91: .nf ! 92: ! 93: $ datad=mydata ! 94: $ fort44=myout ! 95: $ export datad fort44 ! 96: ! 97: .fi ! 98: in the Bourne shell, then the program will read from 'mydata' and ! 99: write to 'myout'. ! 100: If the file name in the open statement is a path name including ! 101: slashes, then only the tail (the part after the last slash) is used ! 102: in looking for an environment variable. ! 103: ! 104: Carriage control is not normally recognized by the f77 I/O library, ! 105: see "help f77 carriage_cc" to see how to use carriage control. ! 106: ! 107: To find out if a logical unit is connected to a terminal, use the ! 108: logical function 'isatty()', see "man 3f ttynam" for details. ! 109: ! 110: For an example of random access I/O, see "help f77 io_random". ! 111: For a list of errors from the f77 I/O library, see "help f77 io_err_msgs".
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.