| |
| ====== old index for f2c, now "readme from f2c" ============ |
| |
| FILES: |
| |
| f2c.h Include file necessary for compiling output of the converter. |
| See the second NOTE below. |
| |
| f2c.1 Man page for f2c. |
| |
| f2c.1t Source for f2c.1 (to be processed by troff -man or nroff -man). |
| |
| libf77 Library of non I/O support routines the generated C may need. |
| Fortran main programs result in a C function named MAIN__ that |
| is meant to be invoked by the main() in libf77. |
| |
| libi77 Library of Fortran I/O routines the generated C may need. |
| Note that some vendors (e.g., BSD, Sun and MIPS) provide a |
| libF77 and libI77 that are incompatible with f2c -- they |
| provide some differently named routines or routines with the |
| names that f2c expects, but with different calling sequences. |
| On such systems, the recommended procedure is to merge |
| libf77 and libi77 into a single library, say libf2c, and to |
| install it where you can access it by specifying -lf2c . The |
| definition of link_msg in sysdep.c assumes this arrangement. |
| |
| Both libf77 and libi77 are bundles, meant to be unpacked by the |
| Bourne (or Korn) shell. MS-DOS users can use the MKS Toolkit |
| to unpack libf77 and libi77. |
| |
| libf2c.zip |
| Only available by ftp: combination of libf77 and libi77, with |
| Unix and PC makefiles. |
| |
| f2c.ps Postscript for a technical report on f2c. After you strip the |
| mail header, the first line should be "%!PS". |
| |
| fixes The complete change log, reporting bug fixes and other changes. |
| (Some recent change-log entries are given below). |
| |
| fc A shell script that uses f2c and imitates much of the behavior |
| of commonly found f77 commands. You will almost certainly |
| need to adjust some of the shell-variable assignments to make |
| this script work on your system. |
| |
| |
| SUBDIRECTORY: |
| |
| f2c/src Source for the converter itself, including a file of checksums |
| and source for a program to compute the checksums (to verify |
| correct transmission of the source), is available: ask netlib |
| (e.g., netlib@netlib.bell-labs.com) to |
| send all from f2c/src |
| If the checksums show damage to just a few source files, or if |
| the change log file (see "fixes" below) reports corrections to |
| some source files, you can request those files individually |
| "from f2c/src". For example, to get defs.h and xsum0.out, you |
| would ask netlib to |
| send defs.h xsum0.out from f2c/src |
| "all from f2c/src" is about 640 kilobytes long; for convenience |
| (and checksums), it includes copies of f2c.h, f2c.1, and f2c.1t. |
| |
| Tip: if asked to send over 99,000 bytes in one request, netlib |
| breaks the shipment into 1000 line pieces and sends each piece |
| separately (since otherwise some mailers might gag). To avoid |
| the hassle of reassembling the pieces, try to keep each request |
| under 99,000 bytes long. The final number in each line of |
| xsum0.out gives the length of each file in f2c/src. For |
| example, |
| send exec.c expr.c from f2c/src |
| send format.c format_data.c from f2c/src |
| will give you slightly less hassle than |
| send exec.c expr.c format.c format_data.c from f2c/src |
| Alternatively, if all the mailers in your return path allow |
| long messages, you can supply an appropriate mailsize line in |
| your netlib request, e.g. |
| mailsize 200k |
| send exec.c expr.c format.c format_data.c from f2c/src |
| |
| The makefile used to generate gram.c; now we distribute a |
| working gram.c, and you must say |
| make gram1.c |
| mv gram1.c gram.c |
| if you want to generate your own gram.c -- there are just too |
| many broken variants of yacc floating around nowadays for |
| generation of gram.c to be the default. |
| |
| NOTE: You may exercise f2c by sending netlib@netlib.bell-labs.com |
| a message whose first line is "execute f2c" and whose remaining |
| lines are the Fortran 77 source that you wish to have converted. |
| Return mail brings you the resulting C, with f2c's error |
| messages between #ifdef uNdEfInEd and #endif at the end. |
| (To understand line numbers in the error messages, regard |
| the "execute f2c" line as line 0. It is stripped away by |
| the netlib software before f2c sees your Fortran input.) |
| Options described in the man page may be transmitted to |
| netlib by having the first line of input be a comment |
| whose first 6 characters are "c$f2c " and whose remaining |
| characters are the desired options, e.g., "c$f2c -R -u". |
| |
| You may say "execute f2c" in the Subject line instead of (but |
| *not* in addition to) in the first line of the message body. |
| |
| The incoming Fortran is saved, at least for a while. Don't |
| send any secrets! |
| |
| |
| BUGS: Please send bug reports (including the shortest example |
| you can find that illustrates the bug) to research!dmg |
| or dmg@bell-labs.com . You might first check whether |
| the bug goes away when you turn optimization off. |
| |
| |
| NOTE: f2c.h defines several types, e.g., real, integer, doublereal. |
| The definitions in f2c.h are suitable for most machines, but if |
| your machine has sizeof(double) > 2*sizeof(long), you may need |
| to adjust f2c.h appropriately. f2c assumes |
| sizeof(doublecomplex) = 2*sizeof(doublereal) |
| sizeof(doublereal) = sizeof(complex) |
| sizeof(doublereal) = 2*sizeof(real) |
| sizeof(real) = sizeof(integer) |
| sizeof(real) = sizeof(logical) |
| sizeof(real) = 2*sizeof(shortint) |
| EQUIVALENCEs may not be translated correctly if these |
| assumptions are violated. |
| |
| On machines, such as those using a DEC Alpha processor, on |
| which sizeof(short) == 2, sizeof(int) == sizeof(float) == 4, |
| and sizeof(long) == sizeof(double) == 8, it suffices to |
| modify f2c.h by removing the first occurrence of "long " |
| on each line containing "long ", e.g., by issuing the |
| commands |
| mv f2c.h f2c.h0 |
| sed 's/long //' f2c.h0 >f2c.h |
| On such machines, one can enable INTEGER*8 by uncommenting |
| the typedef of longint in f2c.h, so it reads |
| typedef long longint; |
| by compiling libI77 with -DAllow_TYQUAD, and by adjusting |
| libF77/makefile as described in libF77/README. |
| |
| Some machines may have sizeof(int) == 4, sizeof(float) == 8, |
| and sizeof(long long) == 8. On such machines, adjust f2c.h |
| by changing "long int " to "long long ", e.g., by saying |
| mv f2c.h f2c.h0 |
| sed 's/long int /long long /' f2c.h0 >f2c.h |
| One can enable INTEGER*8 on such machines as described |
| above, but with |
| typedef long long longint; |
| |
| There exists a C compiler that objects to the lines |
| typedef VOID C_f; /* complex function */ |
| typedef VOID H_f; /* character function */ |
| typedef VOID Z_f; /* double complex function */ |
| in f2c.h . If yours is such a compiler, do two things: |
| 1. Complain to your vendor about this compiler bug. |
| 2. Find the line |
| #define VOID void |
| in f2c.h and change it to |
| #define VOID int |
| (For readability, the f2c.h lines shown above have had two |
| tabs inserted before their first character.) |
| |
| FTP: All the material described above is now available by anonymous |
| ftp from netlib.bell-labs.com (login: anonymous; Password: your |
| E-mail address; cd netlib/f2c). Note that you can say, e.g., |
| |
| cd /netlib/f2c/src |
| binary |
| prompt |
| mget *.gz |
| |
| to get all the .gz files in src. You must uncompress the .gz |
| files once you have a copy of them, e.g., by |
| |
| gzip -dN *.gz |
| |
| You can also get the entire f2c tree as a tar file: |
| |
| ftp://netlib.bell-labs.com/netlib/f2c.tar |
| |
| (which is a synthetic file -- created on the fly and not visible |
| to ftp's "ls" or "dir" commands). |
| |
| Subdirectory msdos contains two PC versions of f2c, |
| f2c.exe.gz and f2cx.exe.gz; the latter uses extended memory. |
| The README in that directory provides more details. |
| |
| Changes appear first in the f2c files available by E-mail |
| from netlib@netlib.bell-labs.com. If the deamons work right, |
| changed files are available the next day by ftp from |
| netlib.bell-labs.com. In due course, they reach other netlib servers. |
| |
| CHANGE NOTIFICATION: |
| Send the E-mail message |
| subscribe f2c |
| to netlib@netlib.bell-labs.com to request notification of new and |
| changed f2c files. (Beware that automatically sent change |
| notifications may reach you before changes have reached |
| ftp://netlib.bell-labs.com/netlib/f2c or to other netlib servers.) |
| Send the E-mail message |
| unsubscribe f2c |
| to recant your notification request. |
| |
| ----------------- |
| Recent change log (partial) |
| ----------------- |
| |
| Mon May 13 23:35:26 EDT 1996 |
| Recognize Fortran 90's /= as a synonym for .NE.. (<> remains a |
| synonym for .NE..) |
| Emit an empty int function of no arguments to supply an external |
| name to named block data subprograms (so they can be called somewhere |
| to force them to be loaded from a library). |
| Fix bug (memory fault) in handling the following illegal Fortran: |
| parameter(i=1) |
| equivalence(i,j) |
| end |
| Treat cdabs, cdcos, cdexp, cdlog, cdsin, and cdsqrt as synonyms for |
| the double complex intrinsics zabs, zcos, zexp, zlog, zsin, and zsqrt, |
| respectively, unless -cd is specified. |
| Recognize the Fortran 90 bit-manipulation intrinsics btest, iand, |
| ibclr, ibits, ibset, ieor, ior, ishft, and ishftc, unless -i90 is |
| specified. Note that iand, ieor, and ior are thus now synonyms for |
| "and", "xor", and "or", respectively. |
| Add three macros (bit_test, bit_clear, bit_set) to f2c.h for use |
| with btest, ibclr, and ibset, respectively. Add new functions |
| [lq]bit_bits, [lq]bit_shift, and [lq]_bit_cshift to libF77 for |
| use with ibits, ishft, and ishftc, respectively. |
| Add integer function ftell(unit) (returning -1 on error) and |
| subroutine fseek(unit, offset, whence, *) to libI77 (with branch to |
| label * on error). |
| |
| Tue May 14 23:21:12 EDT 1996 |
| Fix glitch (possible memory fault, or worse) in handling multiple |
| entry points with names over 28 characters long. |
| |
| Mon Jun 10 01:20:16 EDT 1996 |
| Update netlib E-mail and ftp addresses in f2c/readme and |
| f2c/src/readme (which are different files) -- to reflect the upcoming |
| breakup of AT&T. |
| libf77: trivial tweaks to F77_aloc.c and system_.c; Version.c not |
| changed. |
| libi77: Adjust rsli.c and lread.c so internal list input with too |
| few items in the input string will honor end= . |
| |
| Mon Jun 10 22:59:57 EDT 1996 |
| Add Bits_per_Byte to sysdep.h and adjust definition of Table_size |
| to depend on Bits_per_Byte (forcing Table_size to be a power of 2); in |
| lex.c, change "comstart[c & 0xfff]" to "comstart[c & (Table_size-1)]" |
| to avoid an out-of-range subscript on end-of-file. |
| |
| Wed Jun 12 00:24:28 EDT 1996 |
| Fix bug in output.c (dereferencing a freed pointer) revealed in |
| print * !np in out_call in output.c clobbered by free |
| end !during out_expr. |
| |
| Wed Jun 19 08:12:47 EDT 1996 |
| f2c.h: add types uinteger, ulongint (for libF77); add qbit_clear |
| and qbit_set macros (in a commented-out section) for integer*8. |
| For integer*8, use qbit_clear and qbit_set for ibclr and ibset. |
| libf77: add casts to unsigned in [lq]bitshft.c. |
| |
| Thu Jun 20 13:30:43 EDT 1996 |
| Complain at character*(*) in common (rather than faulting). |
| Fix bug in recognizing hex constants that start with "16#" (e.g., |
| 16#1234abcd, which is a synonym for z'1234abcd'). |
| Fix bugs in constant folding of expressions involving btest, ibclr, |
| and ibset. |
| Fix bug in constant folding of rshift(16#80000000, -31) (on a 32-bit |
| machine; more generally, the bug was in constant folding of |
| rshift(ibset(0,NBITS-1), 1-NBITS) when f2c runs on a machine with |
| long ints having NBITS bits. |
| |
| Mon Jun 24 07:58:53 EDT 1996 |
| Adjust struct Literal and newlabel() function to accommodate huge |
| source files (with more than 32767 newlabel() invocations). |
| Omit .c file when the .f file has a missing final end statement. |
| |
| Wed Jun 26 14:00:02 EDT 1996 |
| libi77: Add discussion of MXUNIT (highest allowed Fortran unit number) |
| to libI77/README. |
| |
| Fri Jun 28 14:16:11 EDT 1996 |
| Fix glitch with -onetrip: the temporary variable used for nonconstant |
| initial loop variable values was recycled too soon. Example: |
| do i = j+1, k |
| call foo(i+1) ! temp for j+1 was reused here |
| enddo |
| end |
| |
| Tue Jul 2 16:11:27 EDT 1996 |
| formatdata.c: add a 0 to the end of the basetype array (for TYBLANK) |
| (an omission that was harmless on most machines). |
| expr.c: fix a dereference of NULL that was only possible with buggy |
| input, such as |
| subroutine $sub(s) ! the '$' is erroneous |
| character s*(*) |
| s(1:) = ' ' |
| end |
| |
| Sat Jul 6 00:44:56 EDT 1996 |
| Fix glitch in the intrinsic "real" function when applied to a |
| complex (or double complex) variable and passed as an argument to |
| some intrinsic functions. Example: |
| complex a |
| b = sqrt(real(a)) |
| end |
| Fix glitch (only visible if you do not use f2c's malloc and the |
| malloc you do use is defective in the sense that malloc(0) returns 0) |
| in handling include files that end with another include (perhaps |
| followed by comments). |
| Fix glitch with character*(*) arguments named "h" and "i" when |
| the body of the subroutine invokes the intrinsic LEN function. |
| Arrange that after a previous "f2c -P foo.f" has produced foo.P, |
| running "f2c foo.P foo.f" will produce valid C when foo.f contains |
| call sub('1234') |
| end |
| subroutine sub(msg) |
| end |
| Specifically, the length argument in "call sub" is now suppressed. |
| With or without foo.P, it is also now suppressed when the order of |
| subprograms in file foo.f is reversed: |
| subroutine sub(msg) |
| end |
| call sub('1234') |
| end |
| Adjust copyright notices to reflect AT&T breakup. |
| |
| Wed Jul 10 09:25:49 EDT 1996 |
| Fix bug (possible memory fault) in handling erroneously placed |
| and inconsistent declarations. Example that faulted: |
| character*1 w(8) |
| call foo(w) |
| end |
| subroutine foo(m) |
| data h /0.5/ |
| integer m(2) ! should be before data |
| end |
| Fix bug (possible fault) in handling illegal "if" constructions. |
| Example (that faulted): |
| subroutine foo(i,j) |
| if (i) then ! bug: i is integer, not logical |
| else if (j) then ! bug: j is integer, not logical |
| endif |
| end |
| Fix glitch with character*(*) argument named "ret_len" to a |
| character*(*) function. |
| |
| Wed Jul 10 23:04:16 EDT 1996 |
| Fix more glitches in the intrinsic "real" function when applied to a |
| complex (or double complex) variable and passed as an argument to |
| some intrinsic functions. Example: |
| complex a, b |
| r = sqrt(real(conjg(a))) + sqrt(real(a*b)) |
| end |
| |
| Thu Jul 11 17:27:16 EDT 1996 |
| Fix a memory fault associated with complicated, illegal input. |
| Example: |
| subroutine goo |
| character a |
| call foo(a) ! inconsistent with subsequent def and call |
| end |
| subroutine foo(a) |
| end |
| call foo(a) |
| end |
| |
| Wed Jul 17 19:18:28 EDT 1996 |
| Fix yet another case of intrinsic "real" applied to a complex |
| argument. Example: |
| complex a(3) |
| x = sqrt(real(a(2))) ! gave error message about bad tag |
| end |
| |
| Mon Aug 26 11:28:57 EDT 1996 |
| Tweak sysdep.c for non-Unix systems in which process ID's can be |
| over 5 digits long. |
| |
| Tue Aug 27 08:31:32 EDT 1996 |
| Adjust the ishft intrinsic to use unsigned right shifts. (Previously, |
| a negative constant second operand resulted in a possibly signed shift.) |
| |
| Thu Sep 12 14:04:07 EDT 1996 |
| equiv.c: fix glitch with -DKR_headers. |
| libi77: fmtlib.c: fix bug in printing the most negative integer. |
| |
| Fri Sep 13 08:54:40 EDT 1996 |
| Diagnose some illegal appearances of substring notation. |
| |
| Tue Sep 17 17:48:09 EDT 1996 |
| Fix fault in handling some complex parameters. Example: |
| subroutine foo(a) |
| double complex a, b |
| parameter(b = (0,1)) |
| a = b ! f2c faulted here |
| end |
| |
| Thu Sep 26 07:47:10 EDT 1996 |
| libi77: fmt.h: for formatted writes of negative integer*1 values, |
| make ic signed on ANSI systems. If formatted writes of integer*1 |
| values trouble you when using a K&R C compiler, switch to an ANSI |
| compiler or use a compiler flag that makes characters signed. |
| |
| Tue Oct 1 14:41:36 EDT 1996 |
| Give a better error message when dummy arguments appear in data |
| statements. |
| |
| Thu Oct 17 13:37:22 EDT 1996 |
| Fix bug in typechecking arguments to character and complex (or |
| double complex) functions; the bug could cause length arguments |
| for character arguments to be omitted on invocations appearing |
| textually after the first invocation. For example, in |
| subroutine foo |
| character c |
| complex zot |
| call goo(zot(c), zot(c)) |
| end |
| the length was omitted from the second invocation of zot, and |
| there was an erroneous error message about inconsistent calling |
| sequences. |
| |
| Wed Dec 4 13:59:14 EST 1996 |
| Fix bug revealed by |
| subroutine test(cdum,rdum) |
| complex cdum |
| rdum=cos(real(cdum)) ! "Unexpected tag 3 in opconv_fudge" |
| end |
| Fix glitch in parsing "DO 10 D0 = 1, 10". |
| Fix glitch in parsing |
| real*8 x |
| real*8 x ! erroneous "incompatible type" message |
| call foo(x) |
| end |
| lib[FI]77/makefile: add comment about omitting -x under Solaris. |
| |
| Mon Dec 9 23:15:02 EST 1996 |
| Fix glitch in parameter adjustments for arrays whose lower |
| bound depends on a scalar argument. Example: |
| subroutine bug(p,z,m,n) |
| integer z(*),m,n |
| double precision p(z(m):z(m) + n) ! p_offset botched |
| call foo(p(0), p(n)) |
| end |
| libi77: complain about non-positive rec= in direct read and write |
| statements. |
| libf77: trivial adjustments; Version.c not changed. |
| |
| Wed Feb 12 00:18:03 EST 1997 |
| output.c: fix (seldom problematic) glitch in out_call: put parens |
| around the ... in a test of the form "if (q->tag == TADDR && ...)". |
| vax.c: fix bug revealed in the "psi_offset =" assignment in the |
| following example: |
| subroutine foo(psi,m) |
| integer z(100),m |
| common /a/ z |
| double precision psi(z(m):z(m) + 10) |
| call foo(m+1, psi(0),psi(10)) |
| end |
| |
| Mon Feb 24 23:44:54 EST 1997 |
| For consistency with f2c's current treatment of adjacent character |
| strings in FORMAT statements, recognize a Hollerith string following |
| a string (and merge adjacent strings in FORMAT statements). |
| |
| Wed Feb 26 13:41:11 EST 1997 |
| New libf2c.zip, a combination of the libf77 and libi77 bundles (and |
| available only by ftp). |
| libf77: adjust functions with a complex output argument to permit |
| aliasing it with input arguments. (For now, at least, this is just |
| for possible benefit of g77.) |
| libi77: tweak to ftell_.c for systems with strange definitions of |
| SEEK_SET, etc. |
| |
| Tue Apr 8 20:57:08 EDT 1997 |
| libf77: [cz]_div.c: tweaks invisible on most systems (that may |
| improve things slightly with optimized compilation on systems that use |
| gratuitous extra precision). |
| libi77: fmt.c: adjust to complain at missing numbers in formats |
| (but still treat missing ".nnn" as ".0"). |
| |
| Fri Apr 11 14:05:57 EDT 1997 |
| libi77: err.c: attempt to make stderr line buffered rather than |
| fully buffered. (Buffering is needed for format items T and TR.) |
| |
| Thu Apr 17 22:42:43 EDT 1997 |
| libf77: add F77_aloc.o to makefile (and makefile.u in libf2c.zip). |
| |
| Fri Apr 25 19:32:09 EDT 1997 |
| libf77: add [de]time_.c (which may give trouble on some systems). |
| |
| Tue May 27 09:18:52 EDT 1997 |
| libi77: ftell_.c: fix typo that caused the third argument to be |
| treated as 2 on some systems. |
| |
| Mon Jun 9 00:04:37 EDT 1997 |
| libi77 (and libf2c.zip): adjust include order in err.c lread.c wref.c |
| rdfmt.c to include fmt.h (etc.) after system includes. Version.c not |
| changed. |
| |
| Mon Jun 9 14:29:13 EDT 1997 |
| src/gram.c updated; somehow it did not reflect the change of |
| 19961001 to gram.dcl. |
| |
| Mon Jul 21 16:04:54 EDT 1997 |
| proc.c: fix glitch in logic for "nonpositive dimension" message. |
| libi77: inquire.c: always include string.h (for possible use with |
| -DNON_UNIX_STDIO); Version.c not changed. |
| |
| Thu Jul 24 17:11:23 EDT 1997 |
| Tweak "Notice" to reflect the AT&T breakup -- we missed it when |
| updating the copyright notices in the source files last summer. |
| Adjust src/makefile so malloc.o is not used by default, but can |
| be specified with "make MALLOC=malloc.o". |
| Add comments to src/README about the "CRAY" T3E. |
| |
| Tue Aug 5 14:53:25 EDT 1997 |
| Add definition of calloc to malloc.c; this makes f2c's malloc |
| work on some systems where trouble hitherto arose because references |
| to calloc brought in the system's malloc. (On sensible systems, |
| calloc is defined separately from malloc. To avoid confusion on |
| other systems, f2c/malloc.c now defines calloc.) |
| libi77: lread.c: adjust to accord with a change to the Fortran 8X |
| draft (in 1990 or 1991) that rescinded permission to elide quote marks |
| in namelist input of character data; to get the old behavior, compile |
| with F8X_NML_ELIDE_QUOTES #defined. wrtfmt.o: wrt_G: tweak to print |
| the right number of 0's for zero under G format. |
| |
| Sat Aug 16 05:45:32 EDT 1997 |
| libi77: iio.c: fix bug in internal writes to an array of character |
| strings that sometimes caused one more array element than required by |
| the format to be blank-filled. Example: format(1x). |
| |
| Wed Sep 17 00:39:29 EDT 1997 |
| libi77: fmt.[ch] rdfmt.c wrtfmt.c: tweak struct syl for machines |
| with 64-bit pointers and 32-bit ints that did not 64-bit align |
| struct syl (e.g., Linux on the DEC Alpha). This change should be |
| invisible on other machines. |
| |
| Sun Sep 21 22:05:19 EDT 1997 |
| libf77: [de]time_.c (Unix systems only): change return type to double. |
| |
| Thu Dec 4 22:10:09 EST 1997 |
| Fix bug with handling large blocks of comments (over 4k); parts of the |
| second and subsequent blocks were likely to be lost (not copied into |
| comments in the resulting C). Allow comment lines to be longer before |
| breaking them. |
| |
| Mon Jan 19 17:19:27 EST 1998 |
| makefile: change the rule for making gram.c to one for making gram1.c; |
| henceforth, asking netlib to "send all from f2c/src" will bring you a |
| working gram.c. Nowadays there are simply too many broken versions of |
| yacc floating around. |
| libi77: backspace.c: for b->ufmt==0, change sizeof(int) to |
| sizeof(uiolen). On machines where this would make a difference, it is |
| best for portability to compile libI77 with -DUIOLEN_int, which will |
| render the change invisible. |
| |
| Tue Feb 24 08:35:33 EST 1998 |
| makefile: remove gram.c from the "make clean" rule. |
| |
| Wed Feb 25 08:29:39 EST 1998 |
| makefile: change CFLAGS assignment to -O; add "veryclean" rule. |
| |
| Wed Mar 4 13:13:21 EST 1998 |
| libi77: open.c: fix glitch in comparing file names under |
| -DNON_UNIX_STDIO. |
| |
| Mon Mar 9 23:56:56 EST 1998 |
| putpcc.c: omit an unnecessary temporary variable in computing |
| (expr)**3. |
| libf77, libi77: minor tweaks to make some C++ compilers happy; |
| Version.c not changed. |
| |
| Wed Mar 18 18:08:47 EST 1998 |
| libf77: minor tweaks to [ed]time_.c; Version.c not changed. |
| libi77: endfile.c, open.c: acquire temporary files from tmpfile(), |
| unless compiled with -DNON_ANSI_STDIO, which uses mktemp(). |
| New buffering scheme independent of NON_UNIX_STDIO for handling T |
| format items. Now -DNON_UNIX_STDIO is no longer be necessary for |
| Linux, and libf2c no longer causes stderr to be buffered -- the former |
| setbuf or setvbuf call for stderr was to make T format items work. |
| open.c: use the Posix access() function to check existence or |
| nonexistence of files, except under -DNON_POSIX_STDIO, where trial |
| fopen calls are used. In open.c, fix botch in changes of 19980304. |
| libf2c.zip: the PC makefiles are now set for NT/W95, with comments |
| about changes for DOS. |
| |
| Fri Apr 3 17:22:12 EST 1998 |
| Adjust fix of 19960913 to again permit substring notation on |
| character variables in data statements. |
| |
| Sun Apr 5 19:26:50 EDT 1998 |
| libi77: wsfe.c: make $ format item work: this was lost in the changes |
| of 17 March 1998. |
| |
| Sat May 16 19:08:51 EDT 1998 |
| Adjust output of ftnlen constants: rather than appending L, |
| prepend (ftnlen). This should make the resulting C more portable, |
| e.g., to systems (such as DEC Alpha Unix systems) on which long |
| may be longer than ftnlen. |
| Adjust -r so it also casts REAL expressions passed to intrinsic |
| functions to REAL. |
| |
| Wed May 27 16:02:35 EDT 1998 |
| libf2c.zip: tweak description of compiling libf2c for INTEGER*8 |
| to accord with makefile.u rather than libF77/makefile. |
| |
| Thu May 28 22:45:59 EDT 1998 |
| libi77: backspace.c dfe.c due.c iio.c lread.c rsfe.c sue.c wsfe.c: |
| set f__curunit sooner so various error messages will correctly |
| identify the I/O unit involved. |
| libf2c.zip: above, plus tweaks to PC makefiles: for some purposes, |
| it's still best to compile with -DMSDOS (even for use with NT). |
| |
| Thu Jun 18 01:22:52 EDT 1998 |
| libi77: lread.c: modified so floating-point numbers (containing |
| either a decimal point or an exponent field) are treated as errors |
| when they appear as list input for integer data. Compile lread.c with |
| -DALLOW_FLOAT_IN_INTEGER_LIST_INPUT to restore the old behavior. |
| |
| Mon Aug 31 10:38:54 EDT 1998 |
| formatdata.c: if possible, and assuming doubles must be aligned on |
| double boundaries, use existing holes in DATA for common blocks to |
| force alignment of the block. For example, |
| block data |
| common /abc/ a, b |
| double precision a |
| integer b(2) |
| data b(2)/1/ |
| end |
| used to generate |
| struct { |
| integer fill_1[3]; |
| integer e_2; |
| doublereal e_3; |
| } abc_ = { {0}, 1, 0. }; |
| and now generates |
| struct { |
| doublereal fill_1[1]; |
| integer fill_2[1]; |
| integer e_3; |
| } abc_ = { {0}, {0}, 1 }; |
| In the old generated C, e_3 was added to force alignment; in the new C, |
| fill_1 does this job. |
| |
| Mon Sep 7 19:48:51 EDT 1998 |
| libi77: move e_wdfe from sfe.c to dfe.c, where it was originally. |
| Why did it ever move to sfe.c? |
| |
| Tue Sep 8 10:22:50 EDT 1998 |
| Treat dreal as a synonym for dble unless -cd is specified on the |
| command line. |
| |
| Sun Sep 13 22:23:41 EDT 1998 |
| format.c: fix bug in writing prototypes under f2c -A ... *.P: |
| under some circumstances involving external functions with no known |
| type, a null pointer was passed to printf. |
| |
| Tue Oct 20 23:25:54 EDT 1998 |
| Comments added to libf2c/README and libF77/README, pointing out |
| the need to modify signal1.h on some systems. |
| |
| Thu Nov 12 15:34:09 EST 1998 |
| libf77, libf2c.zip: minor tweaks to [de]time_.c and the makefiles, |
| so makefile.sy, makefile.vc, and makefile.wat deal with [de]time_.c. |
| |
| Wed Feb 10 22:59:52 EST 1999 |
| defs.h lex.c: permit long names (up to at least roughly |
| MAX_SHARPLINE_LEN = 1000 characters long) in #line lines (which only |
| matters under -g). |
| fc: add -U option; recognize .so files. |
| |
| Sat Feb 13 10:18:27 EST 1999 |
| libf2c: endfile.c, lread.c, signal1.h0: minor tweaks to make some |
| (C++) compilers happier; f77_aloc.c: make exit_() visible to C++ |
| compilers. Version strings not changed. |
| |
| Thu Mar 11 23:14:02 EST 1999 |
| Modify f2c (exec.c, expr.c) to diagnose incorrect mixing of types |
| when (f2c extended) intrinsic functions are involved, as in |
| (not(17) .and. 4). Catching this in the first executable statement |
| is a bit tricky, as some checking must be postponed until all statement |
| function declarations have been parsed. Thus there is a chance of |
| today's changes introducing bugs under (let us hope) unusual conditions. |
| |
| Sun Mar 28 13:17:44 EST 1999 |
| lex.c: tweak to get the file name right in error messages caused |
| by statements just after a # nnn "filename" line emitted by the C |
| preprocessor. (The trouble is that the line following the # nnn line |
| must be read to see if it is a continuation of the stuff that preceded |
| the # nnn line.) When # nnn "filename" lines appear among the lines |
| for a Fortran statement, the filename reported in an error message for |
| the statement should now be the file that was current when the first |
| line of the statement was read. |
| |
| Sun May 2 22:38:25 EDT 1999 |
| libf77, libi77, libf2c.zip: make getenv_() more portable (call |
| getenv() rather than knowing about char **environ); adjust some |
| complex intrinsics to work with overlapping arguments (caused by |
| inappropriate use of equivalence); open.c: get "external" versus |
| "internal" right in the error message if a file cannot be opened; |
| err.c: cast a pointer difference to (int) for %d; rdfmt.c: omit |
| fixed-length buffer that could be overwritten by formats Inn or Lnn |
| with nn > 83. |
| |
| Mon May 3 13:14:07 EDT 1999 |
| "Invisible" changes to omit a few compiler warnings in f2c and |
| libf2c; two new casts in libf2c/open.c that matter with 64-bit longs, |
| and one more tweak (libf2c/c_log.c) for pathological equivalences. |
| Minor update to "fc" script: new -L flag and comment correction. |
| |
| Tue May 4 10:06:26 EDT 1999 |
| libf77, libf2c.zip: forgot to copy yesterday's latest updates to |
| netlib. |
| |
| Fri Jun 18 02:33:08 EDT 1999 |
| libf2c.zip: rename backspace.c backspac.c, and fix a glitch in it |
| -- b->ufd may change in t_runc(). (For now, it's still backspace.c |
| in the libi77 bundle.) |
| |
| Sun Jun 27 22:05:47 EDT 1999 |
| libf2c.zip, libi77: rsne.c: fix bug in namelist input: a misplaced |
| increment could cause wrong array elements to be assigned; e.g., |
| "&input k(5)=10*1 &end" assigned k(5) and k(15 .. 23). |
| |
| |
| Current timestamps of files in "all from f2c/src", sorted by time, |
| appear below (mm/dd/year hh:mm:ss). To bring your source up to date, |
| obtain source files with a timestamp later than the time shown in your |
| version.c. Note that the time shown in the current version.c is the |
| timestamp of the source module that immediately follows version.c below: |
| |
| 5/03/1999 12:46:15 version.c |
| 5/03/1999 12:39:35 formatdata.c |
| 5/03/1999 12:31:14 format.c |
| 5/03/1999 12:27:17 p1output.c |
| 5/03/1999 12:27:17 data.c |
| 5/03/1999 10:01:12 xsum0.out |
| 5/03/1999 9:59:36 io.c |
| 5/03/1999 9:59:36 misc.c |
| 5/03/1999 9:59:36 init.c |
| 3/26/1999 23:18:11 lex.c |
| 3/11/1999 16:44:17 expr.c |
| 3/11/1999 16:42:42 exec.c |
| 2/10/1999 17:43:01 defs.h |
| 9/08/1998 10:16:51 f2c.1 |
| 9/08/1998 10:16:48 f2c.1t |
| 9/08/1998 10:14:53 intr.c |
| 5/16/1998 16:55:49 output.c |
| 4/03/1998 17:15:05 gram.c |
| 4/03/1998 17:14:59 gram.dcl |
| 3/09/1998 0:30:23 putpcc.c |
| 2/25/1998 8:18:04 makefile |
| 12/04/1997 17:44:11 niceprintf.c |
| 8/05/1997 10:31:26 malloc.c |
| 7/24/1997 17:10:55 README |
| 7/24/1997 16:06:19 Notice |
| 7/21/1997 12:58:44 proc.c |
| 2/11/1997 23:39:14 vax.c |
| 12/04/1996 13:07:53 gram.exec |
| 9/12/1996 12:12:46 equiv.c |
| 8/26/1996 9:41:13 sysdep.c |
| 7/09/1996 10:40:45 names.c |
| 7/04/1996 9:55:45 sysdep.h |
| 7/04/1996 9:55:43 put.c |
| 7/04/1996 9:55:41 pread.c |
| 7/04/1996 9:55:40 parse_args.c |
| 7/04/1996 9:55:36 mem.c |
| 7/04/1996 9:55:36 memset.c |
| 7/04/1996 9:55:35 main.c |
| 7/04/1996 9:55:29 error.c |
| 7/04/1996 9:55:27 cds.c |
| 7/03/1996 15:47:49 xsum.c |
| 6/19/1996 7:04:27 f2c.h |
| 6/19/1996 2:52:05 defines.h |
| 5/13/1996 0:40:32 gram.head |
| 2/25/1994 2:07:19 parse.h |
| 2/22/1994 19:07:20 iob.h |
| 2/22/1994 18:56:53 p1defs.h |
| 2/22/1994 18:53:46 output.h |
| 2/22/1994 18:51:14 names.h |
| 2/22/1994 18:30:41 format.h |
| 1/18/1994 18:12:52 tokens |
| 3/06/1993 14:13:58 gram.expr |
| 1/28/1993 9:03:16 ftypes.h |
| 4/06/1990 0:00:57 gram.io |
| 2/03/1990 0:58:26 niceprintf.h |
| 1/07/1990 1:20:01 usignal.h |
| 11/27/1989 8:27:37 machdefs.h |
| 7/01/1989 11:59:44 pccdefs.h |