Annotation of researchv10no/cmd/f2c/fixlog, revision 1.1

1.1     ! root        1: 
        !             2: Sun Aug 23 19:05:22 EDT 1992:
        !             3:   fc: supply : after O in getopt invocation (for -O1 -O2 -O3).
        !             4: 
        !             5: Mon Aug 24 18:37:59 EDT 1992:
        !             6:   Recant above tweak to fc: getopt is dumber than I thought;
        !             7: it's necessary to say -O 1 (etc.).
        !             8:   libF77/README: add comments about ABORT, ERF, DERF, ERFC, DERFC,
        !             9: GETARG, GETENV, IARGC, SIGNAL, and SYSTEM.
        !            10: 31 Aug. 1989:
        !            11:    1. A(min(i,j)) now is translated correctly (where A is an array).
        !            12:    2. 7 and 8 character variable names are allowed (but elicit a
        !            13:       complaint under -ext).
        !            14:    3. LOGICAL*1 is treated as LOGICAL, with just one error message
        !            15:       per LOGICAL*1 statement (rather than one per variable declared
        !            16:       in that statement).  [Note that LOGICAL*1 is not in Fortran 77.]
        !            17:       Like f77, f2c now allows the format in a read or write statement
        !            18:       to be an integer array.
        !            19: 
        !            20: 5 Sept. 1989:
        !            21:    Fixed botch in argument passing of substrings of equivalenced
        !            22: variables.
        !            23: 
        !            24: 15 Sept. 1989:
        !            25:    Warn about incorrect code generated when a character-valued
        !            26: function is not declared external and is passed as a parameter
        !            27: (in violation of the Fortran 77 standard) before it is invoked.
        !            28: Example:
        !            29: 
        !            30:        subroutine foo(a,b)
        !            31:        character*10 a,b
        !            32:        call goo(a,b)
        !            33:        b = a(3)
        !            34:        end
        !            35: 
        !            36: 18 Sept. 1989:
        !            37:    Complain about overlapping initializations.
        !            38: 
        !            39: 20 Sept. 1989:
        !            40:    Warn about names declared EXTERNAL but never referenced;
        !            41: include such names as externs in the generated C (even
        !            42: though most C compilers will discard them).
        !            43: 
        !            44: 24 Sept. 1989:
        !            45:    New option -w8 to suppress complaint when COMMON or EQUIVALENCE
        !            46: forces word alignment of a double.
        !            47:    Under -A (for ANSI C), ensure that floating constants (terminated
        !            48: by 'f') contain either a decimal point or an exponent field.
        !            49:    Repair bugs sometimes encountered with CHAR and ICHAR intrinsic
        !            50: functions.
        !            51:    Restore f77's optimizations for copying and comparing character
        !            52: strings of length 1.
        !            53:    Always assume floating-point valued routines in libF77 return
        !            54: doubles, even under -R.
        !            55:    Repair occasional omission of arguments in routines having multiple
        !            56: entry points.
        !            57:    Repair bugs in computing offsets of character strings involved
        !            58: in EQUIVALENCE.
        !            59:    Don't omit structure qualification when COMMON variables are used
        !            60: as FORMATs or internal files.
        !            61: 
        !            62: 2 Oct. 1989:
        !            63:    Warn about variables that appear only in data stmts; don't emit them.
        !            64:    Fix bugs in character DATA for noncharacter variables
        !            65: involved in EQUIVALENCE.
        !            66:    Treat noncharacter variables initialized (at least partly) with
        !            67: character data as though they were equivalenced -- put out a struct
        !            68: and #define the variables.  This eliminates the hideous and nonportable
        !            69: numeric values that were used to initialize such variables.
        !            70:    Treat IMPLICIT NONE as IMPLICIT UNDEFINED(A-Z) .
        !            71:    Quit when given invalid options.
        !            72: 
        !            73: 8 Oct. 1989:
        !            74:   Modified naming scheme for generated intermediate variables;
        !            75: more are recycled, fewer distinct ones used.
        !            76:   New option -W nn specifies nn characters/word for Hollerith
        !            77: data initializing non-character variables.
        !            78:   Bug fix: x(i:min(i+10,j)) used to elicit "Can't handle opcode 31 yet".
        !            79:   Integer expressions of the form (i+const1) - (i+const2), where
        !            80: i is a scalar integer variable, are now simplified to (const1-const2);
        !            81: this leads to simpler translation of some substring expressions.
        !            82:   Initialize uninitialized portions of character string arrays to 0
        !            83: rather than to blanks.
        !            84: 
        !            85: 9 Oct. 1989:
        !            86:   New option -c to insert comments showing original Fortran source.
        !            87:   New option -g to insert line numbers of original Fortran source.
        !            88: 
        !            89: 10 Oct. 1989:
        !            90:   ! recognized as in-line comment delimiter (a la Fortran 88).
        !            91: 
        !            92: 24 Oct. 1989:
        !            93:   New options to ease coping with systems that want the structs
        !            94: that result from COMMON blocks to be defined just once:
        !            95:   -E causes uninitialized COMMON blocks to be declared Extern;
        !            96: if Extern is undefined, f2c.h #defines it to be extern.
        !            97:   -ec causes a separate .c file to be emitted for each
        !            98: uninitialized COMMON block: COMMON /ABC/ yields abc_com.c;
        !            99: thus one can compile *_com.c into a library to ensure
        !           100: precisely one definition.
        !           101:   -e1c is similar to -ec, except that everything goes into
        !           102: one file, along with comments that give a sed script for
        !           103: splitting the file into the pieces that -ec would give.
        !           104: This is for use with netlib's "execute f2c" service (for which
        !           105: -ec is coerced into -e1c, and the sed script will put everything
        !           106: but the COMMON definitions into f2c_out.c ).
        !           107: 
        !           108: 28 Oct. 1989:
        !           109:   Convert "i = i op ..." into "i op= ...;" even when i is a
        !           110: dummy argument.
        !           111: 
        !           112: 13 Nov. 1989:
        !           113:   Name integer constants (passed as arguments) c__... rather
        !           114: than c_... so
        !           115:        common /c/stuff
        !           116:        call foo(1)
        !           117:        ...
        !           118: is translated correctly.
        !           119: 
        !           120: 19 Nov. 1989:
        !           121:   Floating-point constants are now kept as strings unless they
        !           122: are involved in constant expressions that get simplified.  The
        !           123: floating-point constants kept as strings can have arbitrarily
        !           124: many significant figures and a very large exponent field (as
        !           125: large as long int allows on the machine on which f2c runs).
        !           126: Thus, for example, the body of
        !           127: 
        !           128:        subroutine zot(x)
        !           129:        double precision x(6), pi
        !           130:        parameter (pi=3.1415926535897932384626433832795028841972)
        !           131:        x(1) = pi
        !           132:        x(2) = pi+1
        !           133:        x(3) = 9287349823749272.7429874923740978492734D-298374
        !           134:        x(4) = .89
        !           135:        x(5) = 4.0005
        !           136:        x(6) = 10D7
        !           137:        end
        !           138: 
        !           139: now gets translated into
        !           140: 
        !           141:     x[1] = 3.1415926535897932384626433832795028841972;
        !           142:     x[2] = 4.1415926535897931;
        !           143:     x[3] = 9.2873498237492727429874923740978492734e-298359;
        !           144:     x[4] = (float).89;
        !           145:     x[5] = (float)4.0005;
        !           146:     x[6] = 1e8;
        !           147: 
        !           148: rather than the former
        !           149: 
        !           150:     x[1] = 3.1415926535897931;
        !           151:     x[2] = 4.1415926535897931;
        !           152:     x[3] = 0.;
        !           153:     x[4] = (float)0.89000000000000003;
        !           154:     x[5] = (float)4.0004999999999997;
        !           155:     x[6] = 100000000.;
        !           156: 
        !           157:   Recognition of f77 machine-constant intrinsics deleted, i.e.,
        !           158: epbase, epprec, epemin, epemax, eptiny, ephuge, epmrsp.
        !           159: 
        !           160: 22 Nov. 1989:
        !           161:   Workarounds for glitches on some Sun systems...
        !           162:   libf77: libF77/makefile modified to point out possible need
        !           163: to compile libF77/main.c with -Donexit=on_exit .
        !           164:   libi77: libI77/wref.c (and libI77/README) modified so non-ANSI
        !           165: systems can compile with USE_STRLEN defined, which will cause
        !           166:        sprintf(b = buf, "%#.*f", d, x);
        !           167:        n = strlen(b) + d1;
        !           168: rather than
        !           169:        n = sprintf(b = buf, "%#.*f", d, x) + d1;
        !           170: to be compiled.
        !           171: 
        !           172: 26 Nov. 1989:
        !           173:   Longer names are now accepted (up to 50 characters); names may
        !           174: contain underscores (in which case they will have two underscores
        !           175: appended, to avoid clashes with library names).
        !           176: 
        !           177: 28 Nov. 1989:
        !           178:   libi77 updated:
        !           179:        1. Allow 3 (or, on Crays, 4) digit exponents under format Ew.d .
        !           180:        2. Try to get things right on machines where ints have 16 bits.
        !           181: 
        !           182: 29 Nov. 1989:
        !           183:   Supplied missing semicolon in parameterless subroutines that
        !           184: have multiple entry points (all of them parameterless).
        !           185: 
        !           186: 30 Nov. 1989:
        !           187:   libf77 and libi77 revised to use types from f2c.h.
        !           188:   f2c now types floating-point valued C library routines as "double"
        !           189: rather than "doublereal" (for use with nonstandard C compilers for
        !           190: which "double" is IEEE double extended).
        !           191: 
        !           192: 1 Dec. 1989:
        !           193:   f2c.h updated to eliminate #defines rendered unnecessary (and,
        !           194: indeed, dangerous) by change of 26 Nov. to long names possibly
        !           195: containing underscores.
        !           196:   libi77 further revised: yesterday's change omitted two tweaks to fmt.h
        !           197: (tweaks which only matter if float and real or double and doublereal are
        !           198: different types).
        !           199: 
        !           200: 2 Dec. 1989:
        !           201:   Better error message (than "bad tag") for NAMELIST, which no longer
        !           202: inhibits C output.
        !           203: 
        !           204: 4 Dec. 1989:
        !           205:   Allow capital letters in hex constants (f77 extension; e.g.,
        !           206: x'a012BCd', X'A012BCD' and x'a012bcd' are all treated as the integer
        !           207: 167848909).
        !           208:   libi77 further revised: lio.c lio.h lread.c wref.c wrtfmt.c tweaked
        !           209: again to allow float and real or double and doublereal to be different.
        !           210: 
        !           211: 6 Dec. 1989:
        !           212:   Revised f2c.h -- required for the following...
        !           213:   Simpler looking translations for abs, min, max, using #defines in
        !           214: revised f2c.h .
        !           215:   libi77: more corrections to types; additions for NAMELIST.
        !           216:   Corrected casts in some I/O calls.
        !           217:   Translation of NAMELIST; libi77 must still be revised.  Currently
        !           218: libi77 gives you a run-time error message if you attempt NAMELIST I/O.
        !           219: 
        !           220: 7 Dec. 1989:
        !           221:   Fixed bug that prevented local integer variables that appear in DATA
        !           222: stmts from being ASSIGNed statement labels.
        !           223:   Fillers (for DATA statements initializing EQUIVALENCEd variables and
        !           224: variables in COMMON) typed integer rather than doublereal (for slightly
        !           225: more portability, e.g. to Crays).
        !           226:   libi77: missing return values supplied in a few places; some tests
        !           227: reordered for better working on the Cray.
        !           228:   libf77: better accuracy for complex divide, complex square root,
        !           229: real mod function (casts to double; double temporaries).
        !           230: 
        !           231: 9 Dec. 1989:
        !           232:   Fixed bug that caused needless (albeit harmless) empty lines to be
        !           233: inserted in the C output when a comment line contained trailing blanks.
        !           234:   Further tweak to type of fillers: allow doublereal fillers if the
        !           235: struct has doublereal data.
        !           236: 
        !           237: 11 Dec. 1989:
        !           238:   Alteration of rule for producing external (C) names from names that
        !           239: contain underscores.  Now the external name is always obtained by
        !           240: appending a pair of underscores.
        !           241: 
        !           242: 12 Dec. 1989:
        !           243:   C production inhibited after most errors.
        !           244: 
        !           245: 15 Dec. 1989:
        !           246:   Fixed bug in headers for subroutines having two or more character
        !           247: strings arguments:  the length arguments were reversed.
        !           248: 
        !           249: 19 Dec. 1989:
        !           250:   f2c.h libf77 libi77: adjusted so #undefs in f2c.h should not foil
        !           251: compilation of libF77 and libI77.
        !           252:   libf77: getenv_ adjusted to work with unsorted environments.
        !           253:   libi77: the iostat= specifier should now work right with internal I/O.
        !           254: 
        !           255: 20 Dec. 1989:
        !           256:   f2c bugs fixed: In the absence of an err= specifier, the iostat=
        !           257: specifier was generally set wrong.  Character strings containing
        !           258: explicit nulls (\0) were truncated at the first null.
        !           259:   Unlabeled DO loops recognized; must be terminated by ENDDO.
        !           260: (Don't ask for CYCLE, EXIT, named DO loops, or DO WHILE.)
        !           261: 
        !           262: 29 Dec. 1989:
        !           263:   Nested unlabeled DO loops now handled properly; new warning for
        !           264: extraneous text at end of FORMAT.
        !           265: 
        !           266: 30 Dec. 1989:
        !           267:   Fixed bug in translating dble(real(...)), dble(sngl(...)), and
        !           268: dble(float(...)), where ... is either of type double complex or
        !           269: is an expression requiring assignment to intermediate variables (e.g.,
        !           270: dble(real(foo(x+1))), where foo is a function and x is a variable).
        !           271: Regard nonblank label fields on continuation lines as an error.
        !           272: 
        !           273: 3 Jan. 1990:
        !           274:   New option -C++ yields output that should be understood
        !           275: by C++ compilers.
        !           276: 
        !           277: 6 Jan. 1989:
        !           278:   -a now excludes variables that appear in a namelist from those
        !           279: that it makes automatic.  (As before, it also excludes variables
        !           280: that appear in a common, data, equivalence, or save statement.)
        !           281:   The syntactically correct Fortran
        !           282:        read(*,i) x
        !           283:        end
        !           284: now yields syntactically correct C (even though both the Fortran
        !           285: and C are buggy -- no FORMAT has not been ASSIGNed to i).
        !           286: 
        !           287: 7 Jan. 1990:
        !           288:   libi77: routines supporting NAMELIST added.  Surrounding quotes
        !           289: made optional when no ambiguity arises in a list or namelist READ
        !           290: of a character-string value.
        !           291: 
        !           292: 9 Jan. 1990:
        !           293:   f2c.src made available.
        !           294: 
        !           295: 16 Jan. 1990:
        !           296:   New options -P to produce ANSI C or C++ prototypes for procedures
        !           297: defined.  Change to -A and -C++: f2c tries to infer prototypes for
        !           298: invoked procedures unless the new -!P option is given.  New warning
        !           299: messages for inconsistent calling sequences among procedures within
        !           300: a single file.  Most of f2c/src is affected.
        !           301:   f2c.h: typedefs for procedure arguments added; netlib's f2c service
        !           302: will insert appropriate typedefs for use with older versions of f2c.h.
        !           303: 
        !           304: 17 Jan. 1990:
        !           305:   f2c/src: defs.h exec.c format.c proc.c putpcc.c version.c xsum0.out
        !           306: updated.  Castargs and protofile made extern in defs.h; exec.c
        !           307: modified so superfluous else clauses are diagnosed; unused variables
        !           308: omitted from declarations in format.c proc.c putpcc.c .
        !           309: 
        !           310: 21 Jan. 1990:
        !           311:   No C emitted for procedures declared external but not referenced.
        !           312:   f2c.h: more new types added for use with -P.
        !           313:   New feature: f2c accepts as arguments files ending in .p or .P;
        !           314: such files are assumed to be prototype files, such as produced by
        !           315: the -P option.  All prototype files are read before any Fortran files
        !           316: and apply globally to all Fortran files.  Suitable prototypes help f2c
        !           317: warn about calling-sequence errors and can tell f2c how to type
        !           318: procedures declared external but not explicitly typed; the latter is
        !           319: mainly of interest for users of the -A and -C++ options.  (Prototype
        !           320: arguments are not available to netlib's "execute f2c" service.)
        !           321:   New option -it tells f2c to try to infer types of untyped external
        !           322: arguments from their use as parameters to prototyped or previously
        !           323: defined procedures.
        !           324:   f2c/src: many minor cleanups; most modules changed.  Individual
        !           325: files in f2c/src are now in "bundle" format.  The former f2c.1 is
        !           326: now f2c.1t; "f2c.1t from f2c" and "f2c.1t from f2c/src" are now the
        !           327: same, as are "f2c.1 from f2c" and "f2c.1 from f2c/src".  People who
        !           328: do not obtain a new copy of "all from f2c/src" should at least add
        !           329:        fclose(sortfp);
        !           330: after the call on do_init_data(outfile, sortfp) in format_data.c .
        !           331: 
        !           332: 22 Jan. 1990:
        !           333:   Cleaner man page wording (thanks to Doug McIlroy).
        !           334:   -it now also applies to all untyped EXTERNAL procedures, not just
        !           335: arguments; to get changed files, ask netlib to
        !           336:        send f2c.1 f2c.1t putpcc.c version.c xsum0.out from f2c/src
        !           337: 
        !           338: 23 Jan. 01:34:00 EST 1990:
        !           339:   Bug fixes: under -A and -C++, incorrect C was generated for
        !           340: subroutines having multiple entries but no arguments.
        !           341:   Under -A -P, subroutines of no arguments were given prototype
        !           342: calling sequence () rather than (void).
        !           343:   Character-valued functions elicited erroneous warning messages
        !           344: about inconsistent calling sequences when referenced by another
        !           345: procedure in the same file.
        !           346:   f2c.1t: omit first appearance of libF77.a in FILES section;
        !           347: load order of libraries is -lF77 -lI77, not vice versa (bug
        !           348: introduced in yesterday's edits); define .F macro for those whose
        !           349: -man lacks it.  (For a while after yesterday's fixes were posted,
        !           350: f2c.1t was out of date.  Sorry!)
        !           351:   f2c/src files affected:
        !           352:        f2c.1 f2c.1t format.c pread.c putpcc.c version.c xsum0.out
        !           353: 
        !           354: 23 Jan. 9:53:24 EST 1990:
        !           355:   Character substring expressions involving function calls having
        !           356: character arguments (including the intrinsic len function) yielded
        !           357: incorrect C.
        !           358:   Procedures defined after invocation (in the same file) with
        !           359: conflicting argument types also got an erroneous message about
        !           360: the wrong number of arguments.
        !           361:   f2c/src files affected: expr.c putpcc.c version.c xsum0.out
        !           362: 
        !           363: 24 Jan. 11:44:00 EST 1990:
        !           364:   Bug fixes: -p omitted #undefs; COMMON block names containing
        !           365: underscores had their C names incorrectly computed; a COMMON block
        !           366: having the name of a previously defined procedure wreaked havoc;
        !           367: if all arguments were .P files, f2c tried reading the second as a
        !           368: Fortran file.
        !           369:   New feature: -P emits comments showing COMMON block lengths, so one
        !           370: can get warnings of incompatible COMMON block lengths by having f2c
        !           371: read .P (or .p) files.  Now by running f2c twice, first with -P -!c
        !           372: (or -P!c),  then with *.P among the arguments, you can be warned of
        !           373: inconsistent COMMON usage, and COMMON blocks having inconsistent
        !           374: lengths will be given the maximum length.  (The latter always did
        !           375: happen within each input file; now -P lets you extend this behavior
        !           376: across files.)
        !           377:   f2c/src files affected:
        !           378:        main.c names.c pread.c proc.c version.c xsum0.out
        !           379: 
        !           380: 26 Jan. 16:44:00 EST 1990:
        !           381:   Option -it made less aggressive: untyped external procedures that
        !           382: are invoked are now typed by the rules of Fortran, rather than by
        !           383: previous use of procedures to which they are passed as arguments
        !           384: before being invoked.
        !           385:   Option -P now includes information about references, i.e., called
        !           386: procedures, in the prototype files (in the form of special comments).
        !           387: This allows iterative invocations of f2c to infer more about untyped
        !           388: external names, particularly when multiple Fortran files are involved.
        !           389:   As usual, there are some obscure bug fixes:
        !           390: 1.  Repair of erroneous warning messages about inconsistent number of
        !           391: arguments that arose when a character dummy parameter was discovered
        !           392: to be a function or when multiple entry points involved character
        !           393: variables appearing in a previous entry point.
        !           394: 2.  Repair of memory fault after error msg about "adjustable character
        !           395: function".
        !           396: 3.  Under -U, allow MAIN_ as a subroutine name (in the same file as a
        !           397: main program).
        !           398: 4.  Change for consistency: a known function invoked as a subroutine,
        !           399: then as a function elicits a warning rather than an error.
        !           400:   f2c/src files updated:
        !           401:        defs.h exec.c expr.c format.c gram.dcl main.c misc.c
        !           402:        output.c pread.c proc.c putpcc.c version.c xsum0.out
        !           403: 
        !           404: 26 Jan. 22:32:00 EST 1990:
        !           405:   Fixed two bugs that resulted in incorrect C for substrings, within
        !           406: the body of a character-valued function, of the function's name, when
        !           407: those substrings were arguments to another function (even implicitly,
        !           408: as in character-string assignment).
        !           409:   f2c/src files updated: expr.c output.c version.c xsum0.out
        !           410: 
        !           411: 28 Jan. 18:32:00 EST 1990:
        !           412:   libf77, libi77: checksum files added; "make check" looks for
        !           413: transmission errors.  NAMELIST read modified to allow $ rather than &
        !           414: to precede a namelist name, to allow $ rather than / to terminate
        !           415: input where the name of another variable would otherwise be expected,
        !           416: and to regard all nonprinting ASCII characters <= ' ' as spaces.
        !           417: 
        !           418: 29 Jan. 02:11:00 EST 1990:
        !           419:   "fc from f2c" added.
        !           420:   -it option made the default; -!it turns it off.  Type information is
        !           421: now updated in a previously missed case.
        !           422:   -P option tweaked again; message about when rerunning f2c may change
        !           423: prototypes or declarations made more accurate.
        !           424:   New option -Ps implies -P and returns exit status 4 if rerunning
        !           425: f2c -P with prototype inputs might change prototypes or declarations.
        !           426: Now you can execute a crude script like
        !           427: 
        !           428:        cat *.f >zap.F
        !           429:        rm -f zap.P
        !           430:        while :; do
        !           431:                f2c -Ps -!c zap.[FP]
        !           432:                case $? in 4) ;; *) break;; esac
        !           433:                done
        !           434: 
        !           435: to get a file zap.P of the best prototypes f2c can determine for *.f .
        !           436:  f2c/src files updated:
        !           437:        f2c.1 f2c.1t expr.c format.c main.c
        !           438:        pread.c proc.c putpcc.c version.c xsum0.out
        !           439: 
        !           440: Jan. 29 07:30:21 EST 1990:
        !           441:   Forgot to check for error status when setting return code 4 under -Ps;
        !           442: error status (1, 2, 3, or, for caught signal, 126) now takes precedence.
        !           443:   f2c/src files updated: main.c version.c xsum0.out
        !           444: 
        !           445: Jan 29 14:17:00 EST 1990:
        !           446:   Incorrect handling of
        !           447:        open(n,'filename')
        !           448: repaired -- now treated as
        !           449:        open(n,file='filename')
        !           450: (and, under -ext, given an error message).
        !           451:   New optional source file memset.c for people whose systems don't
        !           452: provide memset, memcmp, and memcpy; #include <string.h> in mem.c
        !           453: changed to #include "string.h" so BSD people can create a local
        !           454: string.h that simply says #include <strings.h> .
        !           455:   f2c/src files changed:
        !           456:        README io.c makefile mem.c memset.c version.c xsum0.out
        !           457: 
        !           458: Jan 30 10:34:00 EST 1990:
        !           459:   Fix erroneous warning at end of definition of a procedure with
        !           460: character arguments when the procedure had previously been called with
        !           461: a numeric argument instead of a character argument.  (There were two
        !           462: warnings, the second one incorrectly complaining of a wrong number of
        !           463: arguments.)
        !           464:   f2c/src files changed: putpcc.c version.c xsum0.out
        !           465: 
        !           466: Jan 30 16:29:41 EST 1990:
        !           467:   Fix case where -P and -Ps erroneously reported another iteration
        !           468: necessary.  (Only harm is the extra iteration.)
        !           469:   f2c/src files changed: format.c putpcc.c version.c xsum0.out
        !           470: 
        !           471: Feb 3 01:40:00 EST 1990:
        !           472:   Supply semicolon occasionally omitted under -c .
        !           473:   Try to force correct alignment when numeric variables are initialized
        !           474: with character data (a non-standard and non-portable practice).  You
        !           475: must use the -W option if your code has such data statements and is
        !           476: meant to run on a machine with other than 4 characters/word; e.g., for
        !           477: code meant to run on a Cray, you would specify -W8 .
        !           478:   Allow parentheses around expressions in output lists (in write and
        !           479: print statements).
        !           480:   Rename source files so their names are <= 12 characters long
        !           481: (so there's room to append .Z and still have <= 14 characters);
        !           482: renamed files:  formatdata.c niceprintf.c niceprintf.h safstrncpy.c .
        !           483:   f2c material made available by anonymous ftp from research.att.com
        !           484: (look in dist/f2c ).
        !           485:   f2c/src files changed:
        !           486:        defs.h equiv.c format.c formatdata.c gram.io init.c
        !           487:        makefile niceprintf.h output.h proc.c version.c xsum0.out
        !           488: 
        !           489: Feb 3 03:49:00 EST 1990:
        !           490:   Repair memory fault that arose from use (in an assignment or
        !           491: call) of a non-argument variable declared CHARACTER*(*).
        !           492:   f2c/src files changed: format.c putpcc.c version.c xsum0.out
        !           493: 
        !           494: Feb 9 01:35:43 EST 1990:
        !           495:   Fix erroneous error msg about bad types in
        !           496:        subroutine foo(a,adim)
        !           497:        dimension a(adim)
        !           498:        integer adim
        !           499:   Fix improper passing of character args (and possible memory fault)
        !           500: in the expression part of a computed goto.
        !           501:   Fix botched calling sequences in array references involving
        !           502: functions having character args.
        !           503:   Fix memory fault caused by invocation of character-valued functions
        !           504: of no arguments.
        !           505:   Fix botched calling sequence of a character*1-valued function
        !           506: assigned to a character*1 variable.
        !           507:   Fix bug in error msg for inconsistent number of args in prototypes.
        !           508:   Allow generation of C output despite inconsistencies in prototypes,
        !           509: but give exit code 8.
        !           510:   Simplify include logic (by removing some bogus logic); never
        !           511: prepend "/usr/include/" to file names.
        !           512:   Minor cleanups (that should produce no visible change in f2c's
        !           513: behavior) in intr.c parse.h main.c defs.h formatdata.c p1output.c .
        !           514:   f2c/src files changed:
        !           515:        defs.h expr.c formatdata.c gram.exec intr.c lex.c main.c
        !           516:        output.c output.h p1output.c parse.h pread.c proc.c putpcc.c
        !           517:        version.c xsum0.out
        !           518: 
        !           519: Feb 10 00:19:38 EST 1990:
        !           520:   Insert (integer) casts when floating-point expressions are used
        !           521: as subscripts.
        !           522:   Make SAVE stmt (with no variable list) override -a .
        !           523:   Minor cleanups: change field to Field in struct Addrblock (for the
        !           524: benefit of buggy C compilers); omit system("/bin/cp ...") in misc.c .
        !           525:   f2c/src files changed:
        !           526:        defs.h expr.c format.c misc.c output.c p1output.c put.c
        !           527:        putpcc.c version.c xsum0.out
        !           528: 
        !           529: Feb 13 00:39:00 EST 1990:
        !           530:   Error msg fix in gram.dcl: change "cannot make %s parameter"
        !           531: to "cannot make into parameter".
        !           532:   f2c/src files changed: gram.dcl version.c xsum0.out
        !           533: 
        !           534: Feb 14 14:02:00 EST 1990:
        !           535:   Various cleanups (invisible on systems with 4-byte ints), thanks
        !           536: to Dave Regan: vaxx.c eliminated; %d changed to %ld various places;
        !           537: external names adjusted for the benefit of stupid systems (that ignore
        !           538: case and recognize only 6 significant characters in external names);
        !           539: buffer shortened in xsum.c (e.g. for MS-DOS); fopen modes distinguish
        !           540: text and binary files; several unused functions eliminated; missing
        !           541: arg supplied to an unlikely fatalstr invocation.
        !           542:   f2c/src files changed:
        !           543:        cds.c data.c defs.h exec.c expr.c format.c format.h
        !           544:        formatdata.c gram.head init.c io.c iob.h lex.c main.c
        !           545:        makefile mem.c misc.c names.c names.h niceprintf.c output.c
        !           546:        output.h p1defs.h p1output.c parse_args.c pread.c proc.c
        !           547:        put.c putpcc.c vax.c version.c xsum.c xsum0.out
        !           548: 
        !           549: Thu Feb 15 19:15:53 EST 1990:
        !           550:   More cleanups (invisible on systems with 4 byte ints); casts inserted
        !           551: so most complaints from cyntax(1) and lint(1) go away; a few (int)
        !           552: versus (long) casts corrected.
        !           553:   f2c/src files changed:
        !           554:        data.c defs.h equiv.c exec.c expr.c format.c formatdata.c
        !           555:        gram.dcl gram.exec gram.expr gram.head gram.io init.c intr.c
        !           556:        io.c main.c mem.c misc.c names.c output.c p1output.c pread.c
        !           557:        proc.c put.c putpcc.c version.c xsum0.out
        !           558: 
        !           559: Fri Feb 16 19:55:00 EST 1990:
        !           560:   Recognize and translate unnamed Fortran 8x do while statements.
        !           561:   Fix bug that occasionally caused improper breaking of character
        !           562: strings.
        !           563:   New error message for attempts to provide DATA in a type-declaration
        !           564: statement.
        !           565:   f2c/src files changed:
        !           566:        data.c defs.h exec.c format.c formatdata.c gram.dcl gram.exec
        !           567:        gram.head init.c lex.c main.c niceprintf.c p1defs.h p1output.c
        !           568:        putpcc.c tokens version.c xsum0.out
        !           569: 
        !           570: Sat Feb 17 11:43:00 EST 1990:
        !           571:   Fix infinite loop clf -> Fatal -> done -> clf after I/O error.
        !           572:   Change "if (addrp->vclass = CLPROC)" to "if (addrp->vclass == CLPROC)"
        !           573: in p1_addr (in p1output.c); this was probably harmless.
        !           574:   Move a misplaced } in lex.c (which slowed initkey()).
        !           575:   Thanks to Gary Word for pointing these things out.
        !           576:   f2c/src files changed: lex.c main.c p1output.c version.c xsum0.out
        !           577: 
        !           578: Sun Feb 18 18:07:00 EST 1990:
        !           579:   Detect overlapping initializations of arrays and scalar variables
        !           580: in previously missed cases.
        !           581:   Treat logical*2 as logical (after issuing a warning).
        !           582:   Don't pass string literals to p1_comment().
        !           583:   Correct a cast (introduced 16 Feb.) in gram.expr; this matters e.g.
        !           584: on a Cray.
        !           585:   Attempt to isolate UNIX-specific things in sysdep.c (a new source
        !           586: file).  Unless sysdep.c is compiled with SYSTEM_SORT defined, the
        !           587: intermediate files created for DATA statements are now sorted in-core
        !           588: without invoking system().
        !           589:   f2c/src/files changed:
        !           590:        README defines.h defs.h exec.c expr.c formatdata.c gram.exec
        !           591:        gram.head init.c main.c makefile misc.c proc.c putpcc.c
        !           592:        sysdep.c xsum0.out
        !           593: 
        !           594: Tue Feb 20 16:10:35 EST 1990:
        !           595:   Move definition of binread and binwrite from init.c to sysdep.c .
        !           596:   Recognize Fortran 8x tokens < <= == >= > <> as synonyms for
        !           597: .LT. .LE. .EQ. .GE. .GT. .NE.
        !           598:   Minor cleanup in putpcc.c:  fully remove simoffset().
        !           599:   More discussion of system dependencies added to libI77/README.
        !           600:   f2c/src files changed:
        !           601:        init.c lex.c putpcc.c sysdep.c version.c xsum0.out
        !           602: 
        !           603: Tue Feb 20 21:44:07 EST 1990:
        !           604:   Minor cleanups for the benefit of EBCDIC machines -- try to remove
        !           605: the assumption that 'a' through 'z' are contiguous.  (Thanks again to
        !           606: Gary Word.)  Also, change log2 to log_2 (shouldn't be necessary).
        !           607:   f2c/src files changed:
        !           608:        defs.h expr.c init.c lex.c misc.c parse_args.c pread.c
        !           609:        putpcc.c version.c xsum0.out
        !           610: 
        !           611: Wed Feb 21 06:24:56 EST 1990:
        !           612:   Fix botch in init.c introduced in previous change; only matters
        !           613: to non-ASCII machines.
        !           614: 
        !           615: Thu Feb 22 17:29:12 EST 1990:
        !           616:   Allow several entry points to mention the same array.  Protect
        !           617: parameter adjustments with if's (for the case that an array is not
        !           618: an argument to all entrypoints).
        !           619:   Under -u, allow
        !           620:        subroutine foo(x,n)
        !           621:        real x(n)
        !           622:        integer n
        !           623:   Compute intermediate variables used to evaluate dimension expressions
        !           624: at the right time.  Example previously mistranslated:
        !           625:        subroutine foo(x,k,m,n)
        !           626:        real x(min(k,m,n))
        !           627:        ...
        !           628:        write(*,*) x
        !           629:   Detect duplicate arguments.  (The error msg points to the first
        !           630: executable stmt -- not wonderful, but not worth fixing.)
        !           631:   Minor cleanup of min/max computation (sometimes slightly simpler).
        !           632:   f2c/src files changed:
        !           633:        defines.h defs.h expr.c format.c init.c main.c output.c p1defs.h
        !           634:        p1output.c proc.c putpcc.c vax.c version.c xsum0.out
        !           635: 
        !           636: Sun Feb 25 09:39:01 EST 1990:
        !           637:   Minor tweak to multiple entry points: protect parameter adjustments
        !           638: with if's only for (array) args that do not appear in all entry points.
        !           639:   Minor tweaks to format.c and io.c (invisible unless your compiler
        !           640: complained at the duplicate #defines of IOSUNIT and IOSFMT or at
        !           641: comparisons of p1gets(...) with NULL).
        !           642:   f2c/src files changed: format.c io.c vax.c version.c xsum0.out
        !           643: 
        !           644: Sun Feb 25 18:40:10 EST 1990:
        !           645:   Fix bug introduced Feb. 22: if a subprogram contained DATA and the
        !           646: first executable statement was labeled, then the label got lost.
        !           647: (Just change INEXEC to INDATA in p1output.c; it occurs just once.)
        !           648:   f2c/src files changed: p1output.c version.c xsum0.out
        !           649: 
        !           650: Mon Feb 26 17:45:10 EST 1990:
        !           651:   Fix bug in handling of " and ' in comments.
        !           652:   f2c/src files changed: format.c niceprintf.c version.c xsum0.out
        !           653: 
        !           654: Wed Mar 28 01:43:06 EST 1990:
        !           655: libI77:
        !           656:  1. Repair nasty I/O bug: opening two files and closing the first
        !           657: (after possibly reading or writing it), then writing the second caused
        !           658: the last buffer of the second to be lost.
        !           659:  2. Formatted reads of logical values treated all letters other than
        !           660: t or T as f (false).
        !           661:  libI77 files changed: err.c rdfmt.c Version.c
        !           662:  (Request "libi77 from f2c" -- you can't get these files individually.)
        !           663: 
        !           664: f2c itself:
        !           665:   Repair nasty bug in translation of
        !           666:        ELSE IF (condition involving complicated abs, min, or max)
        !           667: -- auxiliary statements were emitted at the wrong place.
        !           668:   Supply semicolon previously omitted from the translation of a label
        !           669: (of a CONTINUE) immediately preceding an ELSE IF or an ELSE.  This
        !           670: bug made f2c produce invalid C.
        !           671:   Correct a memory fault that occurred (on some machines) when the
        !           672: error message "adjustable dimension on non-argument" should be given.
        !           673:   Minor tweaks to remove some harmless warnings by overly chatty C
        !           674: compilers.
        !           675:   Argument arays having constant dimensions but a variable lower bound
        !           676: (e.g., x(n+1:n+3)) had a * omitted from scalar arguments involved in
        !           677: the array offset computation.
        !           678:   f2c/src files changed:
        !           679:        defines.h defs.h exec.c format.c gram.head init.c lex.c
        !           680:        names.h p1defs.h proc.c putpcc.c version.c xsum0.out
        !           681: 
        !           682: Wed Mar 28 18:47:59 EST 1990:
        !           683: libf77: add exit(0) to end of main [return(0) encounters a Cray bug]
        !           684: 
        !           685: Sun Apr  1 16:20:58 EDT 1990:
        !           686:   Avoid dereferencing null when processing equivalences after an error.
        !           687:   f2c/src files changed: equiv.c version.c xsum0.out
        !           688: 
        !           689: Fri Apr  6 08:29:49 EDT 1990:
        !           690:   Calls involving alternate return specifiers omitted processing
        !           691: needed for things like min, max, abs, and // (concatenation).
        !           692:   INTEGER*2 PARAMETERs were treated as INTEGER*4.
        !           693:   Convert some O(n^2) parsing to O(n).
        !           694:   f2c/src files changed:
        !           695:        exec.c expr.c gram.exec gram.expr
        !           696:        gram.io main.c version.c xsum0.out
        !           697: 
        !           698: Tue Apr 10 20:07:02 EDT 1990:
        !           699:   When inconsistent calling sequences involve differing numbers of
        !           700: arguments, report the first differing argument rather than the numbers
        !           701: of arguments.
        !           702:   Fix bug under -a: formatted I/O in which either the unit or the
        !           703: format was a local character variable sometimes resulted in invalid C
        !           704: (a static struct initialized with an automatic component).
        !           705:   Improve error message for invalid flag after elided -.
        !           706:   Complain when literal table overflows, rather than infinitely
        !           707: looping.  (The complaint mentions the new and otherwise undocumented
        !           708: -NL option for specifying a larger literal table.)
        !           709:   New option -h for forcing strings to word (or, with -hd, double-word)
        !           710: boundaries where possible.
        !           711:   Repair a bug that could cause improper splitting of strings.
        !           712:   Fix bug (cast of c to doublereal) in
        !           713:        subroutine foo(c,r)
        !           714:        double complex c
        !           715:        double precision r
        !           716:        c = cmplx(r,real(c))
        !           717:        end
        !           718:   New include file "sysdep.h" has some things from defs.h (and
        !           719: elsewhere) that one may need to modify on some systems.
        !           720:   Some large arrays that were previously statically allocated are now
        !           721: dynamically allocated when f2c starts running.
        !           722:   f2c/src files changed:
        !           723:        README cds.c defs.h f2c.1 f2c.1t format.c formatdata.c init.c
        !           724:        io.c lex.c main.c makefile mem.c misc.c names.c niceprintf.c
        !           725:        output.c parse_args.c pread.c put.c putpcc.c sysdep.h
        !           726:        version.c xsum0.out
        !           727: 
        !           728: Wed Apr 11 18:27:12 EDT 1990:
        !           729:   Fix bug in argument consistency checking of character, complex, and
        !           730: double complex valued functions.  If the same source file contained a
        !           731: definition of such a function with arguments not explicitly typed,
        !           732: then subsequent references to the function might get erroneous
        !           733: warnings of inconsistent calling sequences.
        !           734:   Tweaks to sysdep.h for partially ANSI systems.
        !           735:   New options -kr and -krd cause f2c to use temporary variables to
        !           736: enforce Fortran evaluation-order rules with pernicious, old-style C
        !           737: compilers that apply the associative law to floating-point operations.
        !           738:   f2c/src files changed:
        !           739:        f2c.1 f2c.1t format.c init.c main.c putpcc.c sysdep.h
        !           740:        version.c xsum0.out
        !           741: 
        !           742: Sat Apr 14 15:50:15 EDT 1990:
        !           743:   libi77: libI77 adjusted to allow list-directed and namelist I/O
        !           744: of internal files; bug in namelist I/O of logical and character arrays
        !           745: fixed; list input of complex numbers adjusted to permit d or D to
        !           746: denote the start of the exponent field of a component.
        !           747:   f2c itself: fix bug in handling complicated lower-bound
        !           748: expressions for character substrings; e.g., min and max did not work
        !           749: right, nor did function invocations involving character arguments.
        !           750:   Switch to octal notation, rather than hexadecimal, for nonprinting
        !           751: characters in character and string constants.
        !           752:   Fix bug (when neither -A nor -C++ was specified) in typing of
        !           753: external arguments of type complex, double complex, or character:
        !           754:        subroutine foo(c)
        !           755:        external c
        !           756:        complex c
        !           757: now results in
        !           758:        /* Complex */ int (*c) ();
        !           759: (as, indeed, it once did) rather than
        !           760:        complex (*c) ();
        !           761:   f2c/src files changed:
        !           762:        expr.c format.c formatdata.c init.c niceprintf.c output.c
        !           763:        version.c xsum0.out
        !           764: 
        !           765: Sat Apr 14 22:50:39 EDT 1990:
        !           766:   libI77/makefile: updated "make check" to omit lio.c
        !           767:   lib[FI]77/makefile: trivial change: define CC = cc, reference $(CC).
        !           768:   (Request, e.g., "libi77 from f2c" -- you can't ask for individual
        !           769: files from lib[FI]77.)
        !           770: 
        !           771: Wed Apr 18 00:56:37 EDT 1990:
        !           772:   Move declaration of atof() from defs.h to sysdep.h, where it is
        !           773: now not declared if stdlib.h is included.  (NeXT's stdlib.h has a
        !           774: #define atof that otherwise wreaks havoc.)
        !           775:   Under -u, provide a more intelligible error message (than "bad tag")
        !           776: for an attempt to define a function without specifying its type.
        !           777:   f2c/src files changed: defs.h proc.c sysdep.h version.c xsum0.out
        !           778: 
        !           779: Wed Apr 18 17:26:27 EDT 1990:
        !           780:   Recognize \v (vertical tab) in Hollerith as well as quoted strings;
        !           781: add recognition of \r (carriage return).
        !           782:   New option -!bs turns off recognition of escapes in character strings
        !           783: (\0, \\, \b, \f, \n, \r, \t, \v).
        !           784:   Move to sysdep.c initialization of some arrays whose initialization
        !           785: assumed ASCII; #define Table_size in sysdep.h rather than using
        !           786: hard-coded 256 in allocating arrays of size 1 << (bits/byte).
        !           787:   f2c/src files changed:
        !           788:        cds.c data.c f2c.1 f2c.1t formatdata.c init.c lex.c main.c
        !           789:        mem.c output.c pread.c sysdep.c sysdep.h version.c xsum0.out
        !           790: 
        !           791: Thu Apr 19 08:13:21 EDT 1990:
        !           792:   Warn when escapes would make Hollerith extend beyond statement end.
        !           793:   Omit max() definition from misc.c (should be invisible except on
        !           794: systems that erroneously #define max in stdlib.h).
        !           795:   f2c/src files changed:  lex.c misc.c version.c xsum0.out
        !           796: 
        !           797: Mon Apr 23 22:24:51 EDT 1990:
        !           798:   When producing default-style C (no -A or -C++), cast switch
        !           799: expressions to (int).
        !           800:   Move "-lF77 -lI77 -lm -lc" to link_msg, defined in sysdep.c .
        !           801:   Add #define scrub(x) to sysdep.h, with invocations in format.c and
        !           802: formatdata.c, so that people who have systems like VMS that would
        !           803: otherwise create multiple versions of intermediate files can
        !           804: #define scrub(x) unlink(x)
        !           805:   f2c/src files changed:
        !           806:        format.c formatdata.c main.c output.c sysdep.c sysdep.h
        !           807:        version.c xsum0.out
        !           808: 
        !           809:   Pass string lengths once rather than twice to a function of character
        !           810: arguments involved in comparison of character strings of length 1.
        !           811:   Omit declaration of a now unused variable from mem.c.
        !           812:   f2c/src files changed: mem.c putpcc.c version.c xsum0.out
        !           813: 
        !           814: Fri Apr 27 13:11:52 EDT 1990:
        !           815:   Fix bug that made f2c gag on concatenations involving char(...) on
        !           816: some systems.
        !           817:   f2c/src files changed: putpcc.c version.c xsum0.out
        !           818: 
        !           819: Sat Apr 28 23:20:16 EDT 1990:
        !           820:   Fix control-stack bug in
        !           821:        if(...) then
        !           822:        else if (complicated condition)
        !           823:        else
        !           824:        endif
        !           825: (where the complicated condition causes assignment to an auxiliary
        !           826: variable, e.g., max(a*b,c)).
        !           827:   f2c/src files changed: exec.c version.c xsum0.out
        !           828: 
        !           829: Mon Apr 30 13:30:10 EDT 1990:
        !           830:   Change fillers for DATA with holes from substructures to arrays
        !           831: (in an attempt to make things work right with C compilers that have
        !           832: funny padding rules for substructures, e.g., Sun C compilers).
        !           833:   Minor cleanup of exec.c (should not affect generated C).
        !           834:   f2c/src files changed: exec.c formatdata.c version.c xsum0.out
        !           835: 
        !           836: Mon Apr 30 23:13:51 EDT 1990:
        !           837:   Fix bug in handling return values of functions having multiple
        !           838: entry points of differing return types.
        !           839: 
        !           840: Sat May  5 01:45:18 EDT 1990:
        !           841:   Fix type inference bug in
        !           842:        subroutine foo(x)
        !           843:        call goo(x)
        !           844:        end
        !           845:        subroutine goo(i)
        !           846:        i = 3
        !           847:        end
        !           848: Instead of warning of inconsistent calling sequences for goo,
        !           849: f2c was simply making i a real variable; now i is correctly
        !           850: typed as an integer variable, and f2c issues an error message.
        !           851:   Adjust error messages issued at end of declarations so they
        !           852: don't blame the first executable statement.
        !           853:   f2c/src files changed: error.c expr.c proc.c version.c xsum0.out
        !           854: 
        !           855: Sun May  6 01:29:07 EDT 1990:
        !           856:   Fix bug in -P and -Ps: warn when the definition of a subprogram adds
        !           857: information that would change prototypes or previous declarations.
        !           858:   f2c/src files changed: format.c proc.c putpcc.c version.c xsum0.out
        !           859: 
        !           860: Thu May 10 18:09:15 EDT 1990:
        !           861:   Fix further obscure bug with (default) -it: inconsistent calling
        !           862: sequences and I/O statements could interact to cause a memory fault.
        !           863: Example:
        !           864:       SUBROUTINE FOO
        !           865:       CALL GOO(' Something') ! Forgot integer first arg
        !           866:       END
        !           867:       SUBROUTINE GOO(IUNIT,MSG)
        !           868:       CHARACTER*(*)MSG
        !           869:       WRITE(IUNIT,'(1X,A)') MSG
        !           870:       END
        !           871:   f2c/src files changed: io.c version.c xsum0.out
        !           872: 
        !           873: Fri May 11 16:49:11 EDT 1990:
        !           874:   Under -!c, do not delete any .c files (when there are errors).
        !           875:   Avoid dereferencing 0 when a fatal error occurs while reading
        !           876: Fortran on stdin.
        !           877:   f2c/src files changed: error.c main.c version.c xsum0.out
        !           878: 
        !           879: Mon Jun  4 12:53:08 EDT 1990:
        !           880:   Diagnose I/O units of invalid type.
        !           881:   Add specific error msg about dummy arguments in common.
        !           882:   f2c/src files changed: io.c proc.c version.c xsum0.out
        !           883: 
        !           884: Wed Jun 13 12:43:17 EDT 1990:
        !           885:   Under -A, supply a missing "[1]" for CHARACTER*1 variables that appear
        !           886: both in a DATA statement and in either COMMON or EQUIVALENCE.
        !           887:   f2c/src files changed: formatdata.c version.c xsum0.out
        !           888: 
        !           889: Mon Jun 18 16:58:31 EDT 1990:
        !           890:   Trivial updates to f2c.ps .  ("Fortran 8x" --> "Fortran 90"; omit
        !           891: "(draft)" from "(draft) ANSI C".)
        !           892: 
        !           893: Tue Jun 19 07:36:32 EDT 1990:
        !           894:   Fix incorrect code generated for ELSE IF(expression involving
        !           895: function call passing non-constant substring).
        !           896:   Under -h, preserve the property that strings are null-terminated
        !           897: where possible.
        !           898:   Remove spaces between # and define in lex.c output.c parse.h .
        !           899:   f2c/src files changed:
        !           900:        expr.c format.c formatdata.c lex.c names.c output.c
        !           901:        parse.h putpcc.c version.c xsum0.out
        !           902: 
        !           903: Mon Jun 25 07:22:59 EDT 1990:
        !           904:   Minor tweak to makefile to reduce unnecessary recompilations.
        !           905:   f2c/src files changed: makefile
        !           906: 
        !           907: Tue Jun 26 11:49:53 EDT 1990:
        !           908:   Fix unintended truncation of some integer constants on machines
        !           909: where casting a long to (int) may change the value.  E.g., when f2c
        !           910: ran on machines with 16-bit ints, "i = 99999" was being translated
        !           911: to "i = -31073;".
        !           912:   f2c/src files changed: p1output.c version.c xsum0.out
        !           913: 
        !           914: Wed Jun 27 11:05:32 EDT 1990:
        !           915:   Arrange for CHARACTER-valued PARAMETERs to honor their length
        !           916: specifications.  Allow CHAR(nn) in expressions defining such PARAMETERs.
        !           917:   f2c/src files changed: data.c expr.c putpcc.c version.c xsum0.out
        !           918: 
        !           919: Fri Jul 20 09:17:30 EDT 1990:
        !           920:   Avoid dereferencing 0 when a FORMAT statement has no label.
        !           921:   f2c/src files changed: io.c version.c xsum0.out
        !           922: 
        !           923: Thu Jul 26 11:09:39 EDT 1990:
        !           924:   Remarks about VOID and binread,binwrite added to README.
        !           925:   Tweaks to parse_args: should be invisible unless your compiler
        !           926: complained at (short)*store.
        !           927:   f2c/src files changed: parse.h parse_args.c README version.c xsum0.out
        !           928: 
        !           929: Thu Aug  2 02:07:58 EDT 1990:
        !           930:   f2c.ps: change the first line of page 5 from
        !           931:        include stuff
        !           932: to
        !           933:        include 'stuff'
        !           934: 
        !           935: Tue Aug 14 13:21:24 EDT 1990:
        !           936:   libi77: libI77 adjusted to treat tabs as spaces in list input.
        !           937: 
        !           938: Fri Aug 17 07:24:53 EDT 1990:
        !           939:   libi77: libI77 adjusted so a blank='ZERO' clause (upper case Z)
        !           940: in an open of a currently open file works right.
        !           941: 
        !           942: Tue Aug 28 01:56:44 EDT 1990:
        !           943:   Fix bug in warnings of inconsistent calling sequences: if an
        !           944: argument to a subprogram was never referenced, then a previous
        !           945: invocation of the subprogram (in the same source file) that
        !           946: passed something of the wrong type for that argument did not
        !           947: elicit a warning message.
        !           948:   f2c/src files changed: format.c version.c xsum0.out
        !           949: 
        !           950: Thu Aug 30 09:46:12 EDT 1990:
        !           951:   libi77: prevent embedded blanks in list output of complex values;
        !           952: omit exponent field in list output of values of magnitude between
        !           953: 10 and 1e8; prevent writing stdin and reading stdout or stderr;
        !           954: don't close stdin, stdout, or stderr when reopening units 5, 6, 0.
        !           955: 
        !           956: Tue Sep  4 12:30:57 EDT 1990:
        !           957:   Fix bug in C emitted under -I2 or -i2 for INTEGER*4 FUNCTION.
        !           958:   Warn of missing final END even if there are previous errors.
        !           959:   f2c/src files changed: main.c proc.c version.c xsum0.out
        !           960: 
        !           961: Fri Sep  7 13:55:34 EDT 1990:
        !           962:   Remark about "make xsum.out" and "make f2c" added to README.
        !           963:   f2c/src files changed: README xsum0.out
        !           964: 
        !           965: Tue Sep 18 23:50:01 EDT 1990:
        !           966:   Fix null dereference (and, on some systems, writing of bogus *_com.c
        !           967: files) under -ec or -e1c when a prototype file (*.p or *.P) describes
        !           968: COMMON blocks that do not appear in the Fortran source.
        !           969:   libi77:
        !           970:     Add some #ifdef lines (#ifdef MSDOS, #ifndef MSDOS) to avoid
        !           971: references to stat and fstat on non-UNIX systems.
        !           972:     On UNIX systems, add component udev to unit; decide that old
        !           973: and new files are the same iff both the uinode and udev components
        !           974: of unit agree.
        !           975:     When an open stmt specifies STATUS='OLD', use stat rather than
        !           976: access (on UNIX systems) to check the existence of the file (in case
        !           977: directories leading to the file have funny permissions and this is
        !           978: a setuid or setgid program).
        !           979:   f2c/src files changed: names.c version.c xsum0.out
        !           980: 
        !           981: Thu Sep 27 16:04:09 EDT 1990:
        !           982:   Supply missing entry for Impldoblock in blksize array of cpexpr
        !           983: (in expr.c).  No examples are known where this omission caused trouble.
        !           984:   f2c/src files changed: expr.c version.c xsum0.out
        !           985: 
        !           986: Tue Oct  2 22:58:09 EDT 1990:
        !           987:   libf77: test signal(...) == SIG_IGN rather than & 01 in main().
        !           988:   libi77: adjust rewind.c so two successive rewinds after a write
        !           989: don't clobber the file.
        !           990: 
        !           991: Thu Oct 11 18:00:14 EDT 1990:
        !           992:   libi77: minor cleanups: add #include "fcntl.h" to endfile.c, err.c,
        !           993: open.c; adjust g_char in util.c for segmented memories; in f_inqu
        !           994: (inquire.c), define x appropriately when MSDOS is defined.
        !           995: 
        !           996: Mon Oct 15 20:02:11 EDT 1990:
        !           997:   Add #ifdef MSDOS pointer adjustments to mem.c; treat NAME= as a
        !           998: synonym for FILE= in OPEN statements (an extension that, at least for
        !           999: now, will not be reflected in f2c.ps).
        !          1000:   f2c/src files changed: io.c mem.c version.c xsum0.out
        !          1001: 
        !          1002: Wed Oct 17 16:40:37 EDT 1990:
        !          1003:   libf77, libi77: minor cleanups: _cleanup() and abort() invocations
        !          1004: replaced by invocations of sig_die in main.c; some error messages
        !          1005: previously lost in buffers will now appear.
        !          1006: 
        !          1007: Mon Oct 22 16:11:27 EDT 1990:
        !          1008:   libf77: separate sig_die from main (for folks who don't want to use
        !          1009: the main in libF77).
        !          1010:   libi77: minor tweak to comments in README.
        !          1011: 
        !          1012: Fri Nov  2 13:49:35 EST 1990:
        !          1013:   Use two underscores rather than one in generated temporary variable
        !          1014: names to avoid conflict with COMMON names.  f2c.ps updated to reflect
        !          1015: this change and the NAME= extension introduced 15 Oct.
        !          1016:   Repair a rare memory fault in io.c .
        !          1017:   f2c/src files changed: io.c names.c version.c xsum0.out
        !          1018: 
        !          1019: Mon Nov  5 16:43:55 EST 1990:
        !          1020:   libi77: changes to open.c (and err.c): complain if an open stmt
        !          1021: specifies new= and the file already exists (as specified by Fortrans 77
        !          1022: and 90); allow file= to be omitted in open stmts and allow
        !          1023: status='replace' (Fortran 90 extensions).
        !          1024: 
        !          1025: Fri Nov 30 10:10:14 EST 1990:
        !          1026:   Adjust malloc.c for unusual systems whose sbrk() can return values
        !          1027: not properly aligned for doubles.
        !          1028:   Arrange for slightly more helpful and less repetitive warnings for
        !          1029: non-character variables initialized with character data; these warnings
        !          1030: are (still) suppressed by -w66.
        !          1031:   f2c/src files changed: data.c malloc.c version.c xsum0.out
        !          1032: 
        !          1033: Fri Nov 30 15:57:59 EST 1990:
        !          1034:   Minor tweak to README (about changing VOID in f2c.h).
        !          1035: 
        !          1036: Mon Dec  3 07:36:20 EST 1990:
        !          1037:   Fix spelling of "character" in f2c.1t.
        !          1038: 
        !          1039: Tue Dec  4 09:48:56 EST 1990:
        !          1040:   Remark about link_msg and libf2c added to f2c/README.
        !          1041: 
        !          1042: Thu Dec  6 08:33:24 EST 1990:
        !          1043:   Under -U, render label nnn as L_nnn rather than Lnnn.
        !          1044:   f2c/src files changed: names.c version.c xsum0.out
        !          1045: 
        !          1046: Fri Dec  7 18:05:00 EST 1990:
        !          1047:   Add more names from f2c.h (e.g. integer, real) to the c_keywords
        !          1048: list of names to which an underscore is appended to avoid confusion.
        !          1049:   f2c/src files changed: names.c version.c xsum0.out
        !          1050: 
        !          1051: Mon Dec 10 19:11:15 EST 1990:
        !          1052:   Minor tweaks to makefile (./xsum) and README (binread/binwrite).
        !          1053:   libi77: a few modifications for POSIX systems; meant to be invisible
        !          1054: elsewhere.
        !          1055:   f2c/src files changed: README makefile xsum0.out
        !          1056: 
        !          1057: Sun Dec 16 23:03:16 EST 1990:
        !          1058:   Fix null dereference caused by unusual erroneous input, e.g.
        !          1059:        call foo('abc')
        !          1060:        end
        !          1061:        subroutine foo(msg)
        !          1062:        data n/3/
        !          1063:        character*(*) msg
        !          1064:        end
        !          1065: (Subroutine foo is illegal because the character statement comes after a
        !          1066: data statement.)
        !          1067:   Use decimal rather than hex constants in xsum.c (to prevent
        !          1068: erroneous warning messages about constant overflow).
        !          1069:   f2c/src files changed: misc.c proc.c version.c xsum.c xsum0.out
        !          1070: 
        !          1071: Mon Dec 17 12:26:40 EST 1990:
        !          1072:   Fix rare extra underscore in character length parameters passed
        !          1073: for multiple entry points.
        !          1074:   f2c/src files changed: proc.c version.c xsum0.out
        !          1075: 
        !          1076: Wed Dec 19 17:19:26 EST 1990:
        !          1077:   Allow generation of C despite error messages about bad alignment
        !          1078: forced by equivalence.
        !          1079:   Allow variable-length concatenations in I/O statements, such as
        !          1080:        open(3, file=bletch(1:n) // '.xyz')
        !          1081:   f2c/src files changed: equiv.c io.c putpcc.c version.c xsum0.out
        !          1082: 
        !          1083: Fri Dec 28 17:08:30 EST 1990:
        !          1084:   Fix bug under -p with formats and internal I/O "units" in COMMON,
        !          1085: as in
        !          1086:       COMMON /FIGLEA/F
        !          1087:       CHARACTER*20 F
        !          1088:       F = '(A)'
        !          1089:       WRITE (*,FMT=F) 'Hello, world!'
        !          1090:       END
        !          1091:   f2c/src files changed: io.c version.c xsum0.out
        !          1092: 
        !          1093: Tue Jan 15 12:00:24 EST 1991:
        !          1094:   Fix bug when two equivalence groups are merged, the second with
        !          1095: nonzero offset, and the result is then merged into a common block.
        !          1096: Example:
        !          1097:       INTEGER W(3), X(3), Y(3), Z(3)
        !          1098:       COMMON /ZOT/ Z
        !          1099:       EQUIVALENCE (W(1),X(1)), (X(2),Y(1)), (Z(3),X(1))
        !          1100: ***** W WAS GIVEN THE WRONG OFFSET
        !          1101:   Recognize Fortran 90's optional NML= in NAMELIST READs and WRITEs.
        !          1102: (Currently NML= and FMT= are treated as synonyms -- there's no
        !          1103: error message if, e.g., NML= specifies a format.)
        !          1104:   libi77: minor adjustment to allow internal READs from character
        !          1105: string constants in read-only memory.
        !          1106:   f2c/src files changed: equiv.c io.c version.c xsum0.out
        !          1107:   Change to equiv.c: in eqveqv, add rather than subtract delta to
        !          1108: eqvoffset.
        !          1109: 
        !          1110: Fri Jan 18 22:56:15 EST 1991:
        !          1111:   Add comment to README about needing to comment out the typedef of
        !          1112: size_t in sysdep.h on some systems, e.g. Sun 4.1.
        !          1113:   Fix misspelling of "statement" in an error message in lex.c
        !          1114:   f2c/src files changed: README lex.c version.c xsum0.out
        !          1115: 
        !          1116: Wed Jan 23 00:38:48 EST 1991:
        !          1117:   Allow hex, octal, and binary constants to have the qualifying letter
        !          1118: (z, x, o, or b) either before or after the quoted string containing the
        !          1119: digits.  For now this change will not be reflected in f2c.ps .
        !          1120:   f2c/src files changed: lex.c version.c xsum0.out
        !          1121: 
        !          1122: Tue Jan 29 16:23:45 EST 1991:
        !          1123:   Arrange for character-valued statement functions to give results of
        !          1124: the right length (that of the statement function's name).
        !          1125:   f2c/src files changed: exec.c expr.c version.c xsum0.out
        !          1126: 
        !          1127: Wed Jan 30 07:05:32 EST 1991:
        !          1128:   More tweaks for character-valued statement functions: an error
        !          1129: check and an adjustment so a right-hand side of nonconstant length
        !          1130: (e.g., a substring) is handled right.
        !          1131:   f2c/src files changed: expr.c version.c xsum0.out
        !          1132: 
        !          1133: Wed Jan 30 09:49:36 EST 1991:
        !          1134:   Fix p1_head to avoid printing (char *)0 with %s.
        !          1135:   f2c/src files changed: p1output.c version.c xsum0.out
        !          1136: 
        !          1137: Thu Jan 31 13:53:44 EST 1991:
        !          1138:   Add a test after the cleanup call generated for I/O statements with
        !          1139: ERR= or END= clauses to catch the unlikely event that the cleanup
        !          1140: routine encounters an error.
        !          1141:   f2c/src files changed: io.c version.c xsum0.out
        !          1142: 
        !          1143: Mon Feb  4 08:00:58 EST 1991:
        !          1144:   Minor cleanup: omit unneeded jumps and labels from code generated for
        !          1145: some NAMELIST READs and WRITEs with IOSTAT=, ERR=, and/or END=.
        !          1146:   f2c/src files changed: io.c version.c xsum0.out
        !          1147: 
        !          1148: Tue Feb  5 01:39:36 EST 1991:
        !          1149:   Change Mktemp to mktmp (for the benefit of systems so brain-damaged
        !          1150: that they do not distinguish case in external names -- and that for
        !          1151: some reason want to load mktemp).  Try to get xsum0.out right this
        !          1152: time (it somehow didn't get updated on 4 Feb. 1991).
        !          1153:   Add note to libi77/README about adjusting the interpretation of
        !          1154: RECL= specifiers in OPENs for direct unformatted I/O.
        !          1155:   f2c/src files changed: defs.h exec.c expr.c intr.c io.c
        !          1156:                         proc.c putpcc.c version.c xsum0.out
        !          1157: 
        !          1158: Thu Feb  7 17:24:42 EST 1991:
        !          1159:   New option -r casts values of REAL functions, including intrinsics,
        !          1160: to REAL.  This only matters for unportable code like
        !          1161:        real r
        !          1162:        r = asin(1.)
        !          1163:        if (r .eq. asin(1.)) ...
        !          1164: [The behavior of such code varies with the Fortran compiler used --
        !          1165: and sometimes is affected by compiler options.]  For now, the man page
        !          1166: at the end of f2c.ps is the only part of f2c.ps that reflects this new
        !          1167: option.
        !          1168:  f2c/src files changed: f2c.1 f2c.1t main.c output.c version.c xsum0.out
        !          1169: 
        !          1170: Fri Feb  8 18:12:51 EST 1991:
        !          1171:   Cast pointer differences passed as arguments to the appropriate type.
        !          1172: This matters, e.g., with MSDOS compilers that yield a long pointer
        !          1173: difference but have int == short.
        !          1174:   Disallow nonpositive dimensions.
        !          1175:   f2c/src files changed: format.c gram.dcl gram.exec intr.c io.c
        !          1176:                         malloc.c proc.c version.c xsum0.out
        !          1177: 
        !          1178: Fri Feb 15 12:24:15 EST 1991:
        !          1179:   Change %d to %ld in sprintf call in putpower in putpcc.c.
        !          1180:   Free more memory (e.g. allowing translation of larger Fortran
        !          1181: files under MS-DOS).
        !          1182:   Recognize READ (character expression) and WRITE (character expression)
        !          1183: as formatted I/O with the format given by the character expression.
        !          1184:   Update year in Notice.
        !          1185:   f2c/src files changed:       Notice io.c output.c p1output.c
        !          1186:                                putpcc.c version.c xsum0.out
        !          1187: 
        !          1188: Sat Feb 16 00:42:32 EST 1991:
        !          1189:   Recant recognizing WRITE(character expression) as formatted output
        !          1190: -- Fortran 77 is not symmetric in its syntax for READ and WRITE.
        !          1191:   f2c/src files changed: io.c version.c xsum0.out
        !          1192: 
        !          1193: Mon Mar  4 15:19:42 EST 1991:
        !          1194:   Fix bug in passing the real part of a complex argument to an intrinsic
        !          1195: function.  Omit unneeded parentheses in nested calls to intrinsics.
        !          1196: Example:
        !          1197:        subroutine foo(x, y)
        !          1198:        complex y
        !          1199:        x = exp(sin(real(y))) + exp(imag(y))
        !          1200:        end
        !          1201:   f2c/src files changed: output.c version.c xsum0.out
        !          1202: 54,56d53
        !          1203: < 
        !          1204: < /* Have to find out more about CONCAT before it can be implemented */
        !          1205: < 
        !          1206: 63a61,62
        !          1207: >      /* OPCALL 19 */         { BINARY_OP, 15, SPECIAL_FMT },
        !          1208: >      /* OPCCALL 20 */        { BINARY_OP, 15, SPECIAL_FMT },
        !          1209: 65,69d63
        !          1210: < /* Have to find out more about CALL before it can be implemented */
        !          1211: < 
        !          1212: <      /* OPCALL 19 */         { BINARY_OP,  0, SPECIAL_FMT },
        !          1213: <      /* OPCCALL 20 */        { BINARY_OP,  0, SPECIAL_FMT },
        !          1214: < 
        !          1215: 75,77d68
        !          1216: < 
        !          1217: < /* Why is this a binary operator? 15-jun-88 mwm */
        !          1218: < 
        !          1219: 1080c1071,1072
        !          1220: <          if (byvalue && q -> headblock.vtype != TYCHAR) {
        !          1221: ---
        !          1222: >          if (q -> headblock.vtype != TYCHAR)
        !          1223: >            if (byvalue) {
        !          1224: 1082,1084d1073
        !          1225: < /* Think about array access, too!  Don't just think about argument storage
        !          1226: <    */
        !          1227: < 
        !          1228: 1086,1087c1075,1076
        !          1229: <                      !(q -> addrblock.uname_tag == UNAM_NAME &&
        !          1230: <                        q -> addrblock.user.name -> vdim) &&
        !          1231: ---
        !          1232: >                      q -> addrblock.uname_tag == UNAM_NAME &&
        !          1233: >                      ! q -> addrblock.user.name -> vdim &&
        !          1234: 1089,1090c1078,1079
        !          1235: <                      M(STGARG)|M(STGEQUIV)))
        !          1236: < 
        !          1237: ---
        !          1238: >                                      M(STGARG)|M(STGEQUIV)) &&
        !          1239: >                      ! ISCOMPLEX(q->addrblock.user.name->vtype))
        !          1240: 1098c1087
        !          1241: <          } else if (q->headblock.vtype != TYCHAR) {
        !          1242: ---
        !          1243: >            } else {
        !          1244: 
        !          1245: Fri Mar  8 15:05:42 EST 1991:
        !          1246:   Fix a comment in expr.c; omit safstrncpy.c (which had bugs in
        !          1247: cases not used by f2c).
        !          1248:   f2c/src files changed:
        !          1249:        expr.c makefile niceprintf.c version.c xsum0.out
        !          1250:   omitted: safstrncpy.c
        !          1251: 
        !          1252: Wed Mar 13 02:27:23 EST 1991:
        !          1253:   Initialize firstmemblock->next in mem_init in mem.c .  [On most
        !          1254: systems it was fortuituously 0, but with System V, -lmalloc could
        !          1255: trip on this missed initialization.]
        !          1256:   f2c/src files changed: mem.c version.c xsum0.out
        !          1257: 
        !          1258: Wed Mar 13 11:47:42 EST 1991:
        !          1259:   Fix a reference to freed memory.
        !          1260:   f2c/src files changed: output.c version.c xsum0.out
        !          1261: 
        !          1262: Wed Mar 27 00:42:19 EST 1991:
        !          1263:   Fix a memory fault caused by such illegal Fortran as
        !          1264:        function foo
        !          1265:        x = 3
        !          1266:        logical foo     ! declaration among executables
        !          1267:        foo=.false.     ! used to suffer memory fault
        !          1268:        end
        !          1269:   f2c/src files changed: proc.c version.c xsum0.out
        !          1270: 
        !          1271: Fri Apr  5 08:30:31 EST 1991:
        !          1272:   Fix loss of % in some format expressions, e.g.
        !          1273:        write(*,'(1h%)')
        !          1274:   Fix botch introduced 27 March 1991 that caused subroutines with
        !          1275: multiple entry points to have extraneous declarations of ret_val.
        !          1276:   f2c/src files changed: mem.c proc.c version.c xsum0.out
        !          1277: 
        !          1278: Fri Apr  5 12:44:02 EST 1991
        !          1279:   Try again to omit extraneous ret_val declarations -- this morning's
        !          1280: fix was sometimes wrong.
        !          1281:   f2c/src files changed: proc.c version.c xsum0.out
        !          1282: 
        !          1283: Mon Apr  8 13:47:06 EDT 1991:
        !          1284:   Arrange for s_rnge to have the right prototype under -A -C .
        !          1285:   f2c/src files changed: format.c version.c xsum0.out
        !          1286: 
        !          1287: Wed Apr 17 13:36:03 EDT 1991:
        !          1288:   New fatal error message for apparent invocation of a recursive
        !          1289: statement function.
        !          1290:   f2c/src files changed: expr.c version.c xsum0.out
        !          1291: 
        !          1292: Thu Apr 25 15:13:37 EDT 1991:
        !          1293:   F2c and libi77 adjusted so NAMELIST works with -i2.  (I forgot
        !          1294: about -i2 when adding NAMELIST.)  This required a change to f2c.h
        !          1295: (that only affects NAMELIST I/O under -i2.)  Man-page description of
        !          1296: -i2 adjusted to reflect that -i2 stores array lengths in short ints.
        !          1297:   f2c/src files changed: f2c.1t f2c.h format.c io.c version.c xsum0.out
        !          1298: 
        !          1299: Fri Apr 26 02:54:41 EDT 1991:
        !          1300:   Libi77: fix some bugs in NAMELIST reading of multi-dimensional arrays
        !          1301: (file rsne.c).
        !          1302: 
        !          1303: Tue May  7 09:04:48 EDT 1991:
        !          1304:   gram.c added to f2c/src (for folks who have trouble generating it.  It
        !          1305: is not in "all from f2c", nor in the list of current timestamps below.)
        !          1306: 
        !          1307: Thu May  9 02:13:51 EDT 1991:
        !          1308:   Omit a trailing space in expr.c (could cause a false xsum value if
        !          1309: a mailer drops the trailing blank).
        !          1310: 
        !          1311: Thu May 16 13:14:59 EDT 1991:
        !          1312:   Libi77: increase LEFBL in lio.h to overcome a NeXT bug.
        !          1313:   Tweak for compilers that recognize "nested" comments: inside comments,
        !          1314: turn /* into /+ (as well as */ into +/).
        !          1315: f2c/src files changed: p1output.c version.c xsum0.out
        !          1316: 
        !          1317: Sat May 25 11:44:25 EDT 1991:
        !          1318:   libf77: s_rnge: declare line long int rather than int.
        !          1319: 
        !          1320: Fri May 31 07:51:50 EDT 1991:
        !          1321:   libf77: system_: officially return status.
        !          1322: 
        !          1323: Mon Jun 17 16:52:53 EDT 1991
        !          1324:   Minor tweaks: omit unnecessary declaration of strcmp (that caused
        !          1325: trouble on a system where strcmp was a macro) from misc.c; add
        !          1326: SHELL = /bin/sh to makefiles.
        !          1327:   Fix a dereference of null when a CHARACTER*(*) declaration appears
        !          1328: (illegally) after DATA.  Complain only once per subroutine about
        !          1329: declarations appearing after DATA.
        !          1330:   f2c/src files changed:
        !          1331:        gram.dcl gram.head makefile misc.c proc.c version.c xsum0.out
        !          1332: 
        !          1333: Mon Jul  1 00:28:13 EDT 1991:
        !          1334:   Add test and error message for illegal use of subroutine names, e.g.
        !          1335:       SUBROUTINE ZAP(A)
        !          1336:       ZAP = A
        !          1337:       END
        !          1338:   f2c/src files changed: expr.c version.c xsum0.out
        !          1339: 
        !          1340: Mon Jul  8 21:49:20 EDT 1991:
        !          1341:   Issue a warning about things like
        !          1342:        integer i
        !          1343:        i = 'abc'
        !          1344: (which is treated as i = ichar('a')).  [It might be nice to treat 'abc'
        !          1345: as an integer initialized (in a DATA statement) with 'abc', but
        !          1346: other matters have higher priority.]
        !          1347:   Render
        !          1348:        i = ichar('A')
        !          1349: as
        !          1350:        i = 'A';
        !          1351: rather than
        !          1352:        i = 65;
        !          1353: (which assumes ASCII).
        !          1354:   f2c/src files changed: expr.c intr.c version.c xsum0.out
        !          1355: 
        !          1356: Fri Jul 12 07:41:30 EDT 1991:
        !          1357:   Note added to README about erroneous definitions of __STDC__ .
        !          1358:   f2c/src files changed: README xsum0.out
        !          1359: 
        !          1360: Sat Jul 13 13:38:54 EDT 1991:
        !          1361:   Fix bugs in double type convesions of complex values, e.g.
        !          1362: sngl(real(...)) or dble(real(...)) (where ... is complex).
        !          1363:   f2c/src files changed: putpcc.c version.c xsum0.out
        !          1364: 
        !          1365: Mon Jul 15 13:21:42 EDT 1991:
        !          1366:   Fix bug introduced 8 July 1991 that caused erroneous warnings
        !          1367: "ichar([first char. of] char. string) assumed for conversion to numeric"
        !          1368: when a subroutine had an array of character strings as an argument.
        !          1369:   f2c/src files changed: expr.c version.c xsum0.out
        !          1370: 
        !          1371: Wed Aug 28 01:12:17 EDT 1991:
        !          1372:   Omit an unused function in format.c, an unused variable in proc.c .
        !          1373:   Under -r8, promote complex to double complex (as the man page claims).
        !          1374:   f2c/src files changed:
        !          1375:     defs.h expr.c format.c gram.dcl main.c proc.c version.c xsum0.out
        !          1376: 
        !          1377: Fri Aug 30 17:19:17 EDT 1991:
        !          1378:   f2c.ps updated: slightly expand description of intrinsics and,or,xor,
        !          1379: not; add mention of intrinsics lshift, rshift; add note about f2c
        !          1380: accepting Fortran 90 inline comments (starting with !); update Cobalt
        !          1381: Blue address.
        !          1382: 
        !          1383: Tue Sep 17 07:17:33 EDT 1991:
        !          1384:   libI77: err.c and open.c modified to use modes "rb" and "wb"
        !          1385: when (f)opening unformatted files; README updated to point out
        !          1386: that it may be necessary to change these modes to "r" and "w"
        !          1387: on some non-ANSI systems.
        !          1388: 
        !          1389: Tue Oct 15 10:25:49 EDT 1991:
        !          1390:   Minor tweaks that make some PC compilers happier: insert some
        !          1391: casts, add args to signal functions.
        !          1392:   Change -g to emit uncommented #line lines -- and to emit more of them;
        !          1393: update fc, f2c.1, f2c.1t, f2c.ps to reflect this.
        !          1394:   Change uchar to Uchar in xsum.c .
        !          1395:   Bring gram.c up to date.
        !          1396:   f2c/src files changed:
        !          1397:        defines.h expr.c f2c.1 f2c.1t format.c formatdata.c gram.c
        !          1398:        main.c niceprintf.c p1output.c proc.c sysdep.c sysdep.h
        !          1399:        version.c xsum.c xsum0.out
        !          1400: 
        !          1401: Thu Oct 17 09:22:05 EDT 1991:
        !          1402:   libi77: README, fio.h, sue.c, uio.c changed so the length field
        !          1403: in unformatted sequential records has type long rather than int
        !          1404: (unless UIOLEN_int is #defined).  This is for systems where sizeof(int)
        !          1405: can vary, depending on the compiler or compiler options.
        !          1406: 
        !          1407: Thu Oct 17 13:42:59 EDT 1991:
        !          1408:   libi77: inquire.c: when MSDOS is defined, don't strcmp units[i].ufnm
        !          1409: when it is NULL.
        !          1410: 
        !          1411: Fri Oct 18 15:16:00 EDT 1991:
        !          1412:   Correct xsum0.out in "all from f2c/src" (somehow botched on 15 Oct.).
        !          1413: 
        !          1414: Tue Oct 22 18:12:56 EDT 1991:
        !          1415:   Fix memory fault when a character*(*) argument is used (illegally)
        !          1416: as a dummy variable in the definition of a statement function.  (The
        !          1417: memory fault occurred when the statement function was invoked.)
        !          1418:   Complain about implicit character*(*).
        !          1419:   f2c/src files changed: init.c output.c proc.c version.c xsum0.out
        !          1420: 
        !          1421: Thu Nov 14 08:50:42 EST 1991:
        !          1422:   libi77: change uint to Uint in fmt.h, rdfmt.c, wrtfmt.c; this change
        !          1423: should be invisible unless you're running a brain-damaged system.
        !          1424: 
        !          1425: Mon Nov 25 19:04:40 EST 1991:
        !          1426:   libi77: correct botches introduced 17 Oct. 1991 and 14 Nov. 1991
        !          1427: (change uint to Uint in lwrite.c; other changes that only matter if
        !          1428: sizeof(int) != sizeof(long)).
        !          1429:   Add a more meaningful error message when bailing out due to an attempt
        !          1430: to invoke a COMMON variable as a function.
        !          1431: 
        !          1432: Sun Dec  1 19:29:24 EST 1991:
        !          1433:   libi77: uio.c: add test for read failure (seq. unformatted reads);
        !          1434: adjust an error return from EOF to off end of record.
        !          1435: 
        !          1436: Tue Dec 10 17:42:28 EST 1991:
        !          1437:   Add tests to prevent memory faults with bad uses of character*(*).
        !          1438: 
        !          1439: Thu Dec 12 11:24:41 EST 1991:
        !          1440:   libi77: fix bug with internal list input that caused the last
        !          1441: character of each record to be ignored; adjust error message in
        !          1442: internal formatted input from "end-of-file" to "off end of record"
        !          1443: if the format specifies more characters than the record contains.
        !          1444: 
        !          1445: Wed Dec 18 17:48:11 EST 1991:
        !          1446:   Fix bug in translating nonsensical ichar invocations involving
        !          1447: concatenations.
        !          1448:   Fix bug in passing intrinsics lle, llt, lge, lgt as arguments;
        !          1449: hl_le was being passed rather than l_le, etc.
        !          1450:   libf77: adjust length parameters from long to ftnlen, for
        !          1451: compiling with f2c_i2 defined.
        !          1452:   f2c/src files changed: intr.c put.c putpcc.c version.c xsum0.out
        !          1453: 
        !          1454: Sat Dec 21 15:30:57 EST 1991:
        !          1455:   Allow DO nnn ... to end with an END DO statement labelled nnn.
        !          1456:   f2c/src files changed: exec.c version.c xsum0.out
        !          1457: 
        !          1458: Tue Dec 31 13:53:47 EST 1991:
        !          1459:   Fix bug in handling dimension a(n**3,2) -- pow_ii was called
        !          1460: incorrectly.
        !          1461:   Fix bug in translating
        !          1462:        subroutine x(abc,n)
        !          1463:        character abc(n)
        !          1464:        write(abc,'(i10)') 123
        !          1465:        end
        !          1466: (omitted declaration and initialiation of abc_dim1).
        !          1467:   Complain about dimension expressions of such invalid types
        !          1468: as complex and logical.
        !          1469:   f2c/src files changed: expr.c io.c proc.c version.c xsum0.out
        !          1470: 
        !          1471: Fri Jan 17 11:54:20 EST 1992:
        !          1472:   Diagnose some illegal uses of main program name (rather than
        !          1473: memory faulting).
        !          1474:   libi77:  (1) In list and namelist input, treat "r* ," and "r*,"
        !          1475: alike (where r is a positive integer constant), and fix a bug in
        !          1476: handling null values following items with repeat counts (e.g.,
        !          1477: 2*1,,3).  (2) For namelist reading of a numeric array, allow a new
        !          1478: name-value subsequence to terminate the current one (as though the
        !          1479: current one ended with the right number of null values).
        !          1480: (3) [lio.h, lwrite.c]:  omit insignificant zeros in list and namelist
        !          1481: output.  (Compile with -DOld_list_output to get the old behavior.)
        !          1482:   f2c/src files changed: Notice proc.c version.c xsum0.out
        !          1483: 
        !          1484: Sat Jan 18 15:58:01 EST 1992:
        !          1485:   libi77:  make list output consistent with F format by printing .1
        !          1486: rather than 0.1 (introduced yesterday).
        !          1487: 
        !          1488: Wed Jan 22 08:32:43 EST 1992:
        !          1489:   libi77:  add comment to README pointing out preconnection of
        !          1490: Fortran units 5, 6, 0 to stdin, stdout, stderr (respectively).
        !          1491: 
        !          1492: Mon Feb  3 11:57:53 EST 1992:
        !          1493:   libi77:  fix namelist read bug that caused the character following
        !          1494: a comma to be ignored.
        !          1495: 
        !          1496: Fri Feb 28 01:04:26 EST 1992:
        !          1497:   libf77:  fix buggy z_sqrt.c (double precision square root), which
        !          1498: misbehaved for arguments in the southwest quadrant.
        !          1499: 
        !          1500: Thu Mar 19 15:05:18 EST 1992:
        !          1501:   Fix bug (introduced 17 Jan 1992) in handling multiple entry points
        !          1502: of differing types (with implicitly typed entries appearing after
        !          1503: the first executable statement).
        !          1504:   Fix memory fault in the following illegal Fortran:
        !          1505:         double precision foo(i)
        !          1506: *      illegal: above should be "double precision function foo(i)"
        !          1507:         foo = i * 3.2
        !          1508:         entry moo(i)
        !          1509:         end
        !          1510:   Note about ANSI_Libraries (relevant, e.g., to IRIX 4.0.1 and AIX)
        !          1511: added to README.
        !          1512:   Abort zero divides during constant simplification.
        !          1513:   f2c/src files changed: README expr.c proc.c version.c xsum0.out
        !          1514: 
        !          1515: Sat Mar 21 01:27:09 EST 1992:
        !          1516:   Tweak ckalloc (misc.c) for systems where malloc(0) = 0; this matters
        !          1517: for subroutines with multiple entry points but no arguments.
        !          1518:   Add "struct memblock;" to init.c (irrelevant to most compilers).
        !          1519:   f2c/src files changed: init.c misc.c version.c xsum0.out
        !          1520: 
        !          1521: Wed Mar 25 13:31:05 EST 1992:
        !          1522:   Fix bug with IMPLICIT INTEGER*4(...): under -i2 or -I2, the *4 was
        !          1523: ignored.
        !          1524:   f2c/src files changed: init.c version.c xsum0.out
        !          1525: 
        !          1526: Tue May  5 09:53:55 EDT 1992:
        !          1527:   Tweaks to README; e.g., ANSI_LIbraries changed to ANSI_Libraries .
        !          1528: 
        !          1529: Wed May  6 23:49:07 EDT 1992
        !          1530:   Under -A and -C++, have subroutines return 0 (even if they have
        !          1531: no * arguments).  Omit unused decl of types3 in entrypt().
        !          1532:   Adjust libi77 (rsne.c and lread.c) for systems where ungetc is
        !          1533: a macro.  Tweak lib[FI]77/makefile to use unique intermediate file
        !          1534: names (for parallel makes).
        !          1535:   f2c/src files changed: proc.c version.c xsum0.out
        !          1536: 
        !          1537: Tue May 19 09:03:05 EDT 1992:
        !          1538:   Adjust libI77 to make err= work with internal list and formatted I/O.
        !          1539: 
        !          1540: Sat May 23 18:17:42 EDT 1992:
        !          1541:   Under -A and -C++, supply "return 0;" after the code generated for
        !          1542: a STOP statement -- the C compiler doesn't know that s_stop won't
        !          1543: return.
        !          1544:   New (mutually exclusive) options:
        !          1545:        -f      treats all input lines as free-format lines,
        !          1546:                honoring text that appears after column 72
        !          1547:                and not padding lines shorter than 72 characters
        !          1548:                with blanks (which matters if a character string
        !          1549:                is continued across 2 or more lines).
        !          1550:        -72     treats text appearing after column 72 as an error.
        !          1551:   f2c/src files changed:
        !          1552:        f2c.1t gram.exec lex.c main.c proc.c version.c xsum0.out
        !          1553: 
        !          1554: Sun May 24 09:45:37 EDT 1992:
        !          1555:   Tweak description of -f in f2c.1 and f2c.1t; update f2c.ps .
        !          1556: 
        !          1557: Fri May 29 01:17:15 EDT 1992:
        !          1558:   Complain about externals used as variables.  Example
        !          1559:        subroutine foo(a,b)
        !          1560:        external b
        !          1561:        a = a*b         ! illegal use of b; perhaps should be b()
        !          1562:        end
        !          1563:   f2c/src files changed: expr.c version.c xsum0.out
        !          1564: 
        !          1565: Mon Jun 15 11:15:27 EDT 1992:
        !          1566:   Fix bug in handling namelists with names that have underscores.
        !          1567:   f2c/src files changed: format.c version.c xsum0.out
        !          1568: 
        !          1569: Sat Jun 27 17:30:59 EDT 1992:
        !          1570:   Under -A and -C++, end Main program aliases with "return 0;".
        !          1571:   Under -A and -C++, use .P files and usage in previous subprograms
        !          1572: in the current file to give prototypes for functions declared EXTERNAL
        !          1573: but not invoked.
        !          1574:   Fix memory fault under -d1 -P .
        !          1575:   Under -A and -C++, cast arguments to the right types in calling
        !          1576: a function that has been defined in the current file or in a .P file.
        !          1577:   Fix bug in handling multi-dimensional arrays with array references
        !          1578: in their leading dimensions.
        !          1579:   Fix bug in the intrinsic cmplx function when the first argument
        !          1580: involves an expression for which f2c generates temporary variables,
        !          1581: e.g. cmplx(abs(real(a)),1.) .
        !          1582:   f2c/src files changed: defs.h expr.c format.c main.c output.c
        !          1583:        pread.c proc.c putpcc.c sysdep.c vax.c version.c xsum0.out
        !          1584: 
        !          1585: Sat Jul 18 07:36:58 EDT 1992:
        !          1586:   Fix buglet with -e1c (invisible on most systems) temporary file
        !          1587: f2c_functions was unlinked before being closed.
        !          1588:   libf77: fix bugs in evaluating m**n for integer n < 0 and m an
        !          1589: integer different from 1 or a real or double precision 0.
        !          1590: Catch SIGTRAP (to print "Trace trap" before aborting).  Programs
        !          1591: that previously erroneously computed 1 for 0**-1 may now fault.
        !          1592: Relevant routines: main.c pow_di.c pow_hh.c pow_ii.c pow_ri.c .
        !          1593:   f2c/src files changed: names.c version.c xsum0.out
        !          1594: 
        !          1595: Sat Jul 18 08:40:10 EDT 1992:
        !          1596:   libi77: allow namelist input to end with & (e.g. &end).
        !          1597: 
        !          1598: Thu Jul 23 00:14:43 EDT 1992
        !          1599:   Append two underscores rather than one to C keywords used as
        !          1600: local variables to avoid conflicts with similarly named COMMON blocks.
        !          1601:   f2c/src files changed: names.c version.c xsum0.out
        !          1602: 
        !          1603: Thu Jul 23 11:20:55 EDT 1992:
        !          1604:   libf77, libi77 updated to assume ANSI prototypes unless KR_headers
        !          1605: is #defined.
        !          1606:   libi77 now recognizes a Z format item as in Fortran 90;
        !          1607: the implementation assumes 8-bit bytes and botches character strings
        !          1608: on little-endian machines (by printing their bytes from right to
        !          1609: left): expect this bug to persist; fixing it would require a
        !          1610: change to the I/O calling sequences.
        !          1611: 
        !          1612: Tue Jul 28 15:18:33 EDT 1992:
        !          1613:   libi77: insert missed "#ifdef KR_headers" lines around getnum
        !          1614: header in rsne.c.  Version not updated.
        !          1615: 
        !          1616: Fri Aug 14 08:07:09 EDT 1992:
        !          1617:   libi77: tweak wrt_E in wref.c to avoid signing NaNs.
        !          1618: 
        !          1619: Sun Aug 23 19:05:22 EDT 1992:
        !          1620:   fc: supply : after O in getopt invocation (for -O1 -O2 -O3).
        !          1621: 
        !          1622: Mon Aug 24 18:37:59 EDT 1992:
        !          1623:   Recant above tweak to fc: getopt is dumber than I thought;
        !          1624: it's necessary to say -O 1 (etc.).
        !          1625:   libF77/README: add comments about ABORT, ERF, DERF, ERFC, DERFC,
        !          1626: GETARG, GETENV, IARGC, SIGNAL, and SYSTEM.
        !          1627: 
        !          1628: Tue Oct 27 01:57:42 EST 1992:
        !          1629:   libf77, libi77:
        !          1630:     1.  Fix botched indirection in signal_.c.
        !          1631:     2.  Supply missing l_eof = 0 assignment to s_rsne() in rsne.c (so
        !          1632: end-of-file on other files won't confuse namelist reads of external
        !          1633: files).
        !          1634:     3.  Prepend f__ to external names that are only of internal
        !          1635: interest to lib[FI]77. 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.