|
|
1.1 ! root 1: Update info on the f77 I/O library ! 2: 28 April, 1983 ! 3: ! 4: 01 Feb, 1980 ! 5: All instances of: ! 6: if(!init) f_init(); ! 7: have been removed. f_init() is called from main.c on startup in the new ! 8: libF77.a . ! 9: ! 10: 01 Feb, 1980 ! 11: Backspace now allows non-seek files to reset the EOF flag. ! 12: ! 13: 20 Mar, 1980 ! 14: The way SIGINT is handled in libF77/main.c has been changed. ! 15: If the signal is not SIG_DFL, it is left alone as otherwise the ! 16: program will be killed if run in the background and the user types DEL. ! 17: The signal trap that used to be in the I/O lib has been removed. ! 18: ! 19: 20 Mar, 1980 ! 20: The ANSI fortran standard requires that I/O routines return to the caller ! 21: on any error condition if iostat= is specified even if no err= or end= ! 22: trap is specified. The implication of this is that the program must ! 23: be prepared to deal with ALL I/O errors if iostat= is specified. ! 24: If only one trap is specified, end= for example, the program must test the ! 25: iostat variable for positive/non-zero after the I/O call since return ! 26: will occur on any error. This seems awkward and I've chosen to make this ! 27: feature optional. I am interested in other views on this. ! 28: ! 29: In the current version of the compiler (using the modified io.c), ! 30: iostat= is used only to return status information from ! 31: I/O calls but does not itself cause return on any I/O error. Only ! 32: the traps, err= and end=, will cause a return/branch, and only for ! 33: the specified trap(s). ! 34: ! 35: This feature has been made a compile time option in the current version ! 36: of (modified) io.c It implements the standard correctly if compiled ! 37: with -DKOSHER or -DIOSRETURN. Otherwise it executes as currently ! 38: implemented. ! 39: ! 40: 18 Apr, 1980 ! 41: As originally implemented the '$' specification caused a NULL to be ! 42: output (inplace of the \n) Actually NULL's should never appear in the ! 43: formatted output streams. Therefore in "sfe.c" in x_putc() and pr_put() ! 44: add if (c) before the instances of putc(c,cf) ! 45: ! 46: 12 May, 1980 ! 47: Spaces (ASCII 040) do not have significance in FORMAT statements except ! 48: within strings. In order to accomodate old programs that may have ! 49: arbitrary occurances of spaces, all spaces are now ignored. Thus the ! 50: format ( 1 0 X , 1 2 F 1 0 . 4 / ) is accepted. ! 51: ! 52: 12 May, 1980 ! 53: A bug in handling partially filled "unformatted direct" records has been ! 54: fixed by ensuring that all records are complete when written. The bug was ! 55: that the last record of such a file would cause EOF if a read was attempted ! 56: for a full record. Existing files of this form should be "fixed" by ! 57: reading and rewriting the last record using the new version of libI77.a ! 58: ! 59: 12 May, 1980 ! 60: BACKSPACE will now open a default file (fort.N) if the specified logical ! 61: unit is not open. REWIND and other I/O already did this. CLOSE and ! 62: ENDFILE do not open a default file. ! 63: ! 64: ?? November, 1980 ! 65: The modified io.c no longer supported. SIF feels it should conform ! 66: exactly with the standard. This means that iostat= will cause return ! 67: in all cases, regardless of the presence or absence of err= or end=. ! 68: ! 69: ?? February, 1981 ! 70: Backspace will reset EOF on any unit, even if it can't "seek". ! 71: You still can't "rewind" non-seekable units. ! 72: ! 73: 25 March, 1981 ! 74: There is now a f77 I/O error list available in the lib. libU77.a routines ! 75: use it. All error numbers have symbollic values. ! 76: ! 77: 18 April, 1981 ! 78: Zero fill can be forced on output of true zero by the BZ format control. ! 79: ! 80: 28 April, 1981 ! 81: It is now possible to read into a hollerith field in a format string. ! 82: This is not encouraged! ! 83: ! 84: 8 May, 1981 ! 85: There is a pseudo-lib to force ANSI-fortran-66 I/O to logical unit 6: ! 86: carriage control will be interpreted, and blanks will be '0's. ! 87: Include -lI66 on the command line. ! 88: ! 89: 8 May, 1981 ! 90: The error report will show non-graphic chars as ^X a la vi. ! 91: ! 92: 11 August, 1981 ! 93: SFE read with a null list at EOF now takes the error branch. ! 94: All routines check the return value of 'nowreading/nowwriting'; this ! 95: should fix the bug causing infinite looping on close of a write ! 96: protected file on which writing had been attempted (it will take the err= ! 97: branch, if any) ! 98: ! 99: 6 December, 1981 ! 100: t_runc now looks for current pos >= EOF. This solves the bug where ! 101: it loops indefinitely in close if written to /dev/null. ! 102: ! 103: 12 May, 1982 ! 104: backspace on a lu at EOF now clears the stdio flags as well as the libI77 ! 105: EOF flag. This fixes the problem of spurious EOF branches on terminal ! 106: input. ! 107: ! 108: open now checks for a non-zero recl argument on sequential access files. ! 109: It complains and ignores the recl spec. ! 110: ! 111: 10 January, 1983 ! 112: Mag tape I/O routines added. See topen.3f. The reason is that Fortran-77 ! 113: I/O requirements are very difficult (or impossible) to meet on mag tape. ! 114: ! 115: 15 April, 1983 ! 116: new routine, ioinit, allows specifying "open at beginning" for files, ! 117: carriage control on unit 6, and preset association of logical units ! 118: with file pathnames from the environment. ! 119: ! 120: 28 April, 1983 ! 121: The new kernel features of 4.2bsd have been incorporated. A number ! 122: of obscure bugs fixed. ! 123: ! 124: Files are now opened at the BEGINNING!! ! 125:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.