1 |
|
---|
2 | ====== old index for f2c, now "readme from f2c" ============
|
---|
3 |
|
---|
4 | FILES:
|
---|
5 |
|
---|
6 | f2c.h Include file necessary for compiling output of the converter.
|
---|
7 | See the second NOTE below.
|
---|
8 |
|
---|
9 | f2c.1 Man page for f2c.
|
---|
10 |
|
---|
11 | f2c.1t Source for f2c.1 (to be processed by troff -man or nroff -man).
|
---|
12 |
|
---|
13 | libf77 Library of non I/O support routines the generated C may need.
|
---|
14 | Fortran main programs result in a C function named MAIN__ that
|
---|
15 | is meant to be invoked by the main() in libf77.
|
---|
16 |
|
---|
17 | libi77 Library of Fortran I/O routines the generated C may need.
|
---|
18 | Note that some vendors (e.g., BSD, Sun and MIPS) provide a
|
---|
19 | libF77 and libI77 that are incompatible with f2c -- they
|
---|
20 | provide some differently named routines or routines with the
|
---|
21 | names that f2c expects, but with different calling sequences.
|
---|
22 | On such systems, the recommended procedure is to merge
|
---|
23 | libf77 and libi77 into a single library, say libf2c, and to
|
---|
24 | install it where you can access it by specifying -lf2c . The
|
---|
25 | definition of link_msg in sysdep.c assumes this arrangement.
|
---|
26 |
|
---|
27 | Both libf77 and libi77 are bundles, meant to be unpacked by the
|
---|
28 | Bourne (or Korn) shell. MS-DOS users can use the MKS Toolkit
|
---|
29 | to unpack libf77 and libi77.
|
---|
30 |
|
---|
31 | libf2c.zip
|
---|
32 | Only available by ftp: combination of libf77 and libi77, with
|
---|
33 | Unix and PC makefiles.
|
---|
34 |
|
---|
35 | f2c.ps Postscript for a technical report on f2c. After you strip the
|
---|
36 | mail header, the first line should be "%!PS".
|
---|
37 |
|
---|
38 | fixes The complete change log, reporting bug fixes and other changes.
|
---|
39 | (Some recent change-log entries are given below).
|
---|
40 |
|
---|
41 | fc A shell script that uses f2c and imitates much of the behavior
|
---|
42 | of commonly found f77 commands. You will almost certainly
|
---|
43 | need to adjust some of the shell-variable assignments to make
|
---|
44 | this script work on your system.
|
---|
45 |
|
---|
46 |
|
---|
47 | SUBDIRECTORY:
|
---|
48 |
|
---|
49 | f2c/src Source for the converter itself, including a file of checksums
|
---|
50 | and source for a program to compute the checksums (to verify
|
---|
51 | correct transmission of the source), is available: ask netlib
|
---|
52 | (e.g., netlib@netlib.bell-labs.com) to
|
---|
53 | send all from f2c/src
|
---|
54 | If the checksums show damage to just a few source files, or if
|
---|
55 | the change log file (see "fixes" below) reports corrections to
|
---|
56 | some source files, you can request those files individually
|
---|
57 | "from f2c/src". For example, to get defs.h and xsum0.out, you
|
---|
58 | would ask netlib to
|
---|
59 | send defs.h xsum0.out from f2c/src
|
---|
60 | "all from f2c/src" is about 640 kilobytes long; for convenience
|
---|
61 | (and checksums), it includes copies of f2c.h, f2c.1, and f2c.1t.
|
---|
62 |
|
---|
63 | Tip: if asked to send over 99,000 bytes in one request, netlib
|
---|
64 | breaks the shipment into 1000 line pieces and sends each piece
|
---|
65 | separately (since otherwise some mailers might gag). To avoid
|
---|
66 | the hassle of reassembling the pieces, try to keep each request
|
---|
67 | under 99,000 bytes long. The final number in each line of
|
---|
68 | xsum0.out gives the length of each file in f2c/src. For
|
---|
69 | example,
|
---|
70 | send exec.c expr.c from f2c/src
|
---|
71 | send format.c format_data.c from f2c/src
|
---|
72 | will give you slightly less hassle than
|
---|
73 | send exec.c expr.c format.c format_data.c from f2c/src
|
---|
74 | Alternatively, if all the mailers in your return path allow
|
---|
75 | long messages, you can supply an appropriate mailsize line in
|
---|
76 | your netlib request, e.g.
|
---|
77 | mailsize 200k
|
---|
78 | send exec.c expr.c format.c format_data.c from f2c/src
|
---|
79 |
|
---|
80 | The makefile used to generate gram.c; now we distribute a
|
---|
81 | working gram.c, and you must say
|
---|
82 | make gram1.c
|
---|
83 | mv gram1.c gram.c
|
---|
84 | if you want to generate your own gram.c -- there are just too
|
---|
85 | many broken variants of yacc floating around nowadays for
|
---|
86 | generation of gram.c to be the default.
|
---|
87 |
|
---|
88 | NOTE: You may exercise f2c by sending netlib@netlib.bell-labs.com
|
---|
89 | a message whose first line is "execute f2c" and whose remaining
|
---|
90 | lines are the Fortran 77 source that you wish to have converted.
|
---|
91 | Return mail brings you the resulting C, with f2c's error
|
---|
92 | messages between #ifdef uNdEfInEd and #endif at the end.
|
---|
93 | (To understand line numbers in the error messages, regard
|
---|
94 | the "execute f2c" line as line 0. It is stripped away by
|
---|
95 | the netlib software before f2c sees your Fortran input.)
|
---|
96 | Options described in the man page may be transmitted to
|
---|
97 | netlib by having the first line of input be a comment
|
---|
98 | whose first 6 characters are "c$f2c " and whose remaining
|
---|
99 | characters are the desired options, e.g., "c$f2c -R -u".
|
---|
100 |
|
---|
101 | You may say "execute f2c" in the Subject line instead of (but
|
---|
102 | *not* in addition to) in the first line of the message body.
|
---|
103 |
|
---|
104 | The incoming Fortran is saved, at least for a while. Don't
|
---|
105 | send any secrets!
|
---|
106 |
|
---|
107 |
|
---|
108 | BUGS: Please send bug reports (including the shortest example
|
---|
109 | you can find that illustrates the bug) to research!dmg
|
---|
110 | or dmg@bell-labs.com . You might first check whether
|
---|
111 | the bug goes away when you turn optimization off.
|
---|
112 |
|
---|
113 |
|
---|
114 | NOTE: f2c.h defines several types, e.g., real, integer, doublereal.
|
---|
115 | The definitions in f2c.h are suitable for most machines, but if
|
---|
116 | your machine has sizeof(double) > 2*sizeof(long), you may need
|
---|
117 | to adjust f2c.h appropriately. f2c assumes
|
---|
118 | sizeof(doublecomplex) = 2*sizeof(doublereal)
|
---|
119 | sizeof(doublereal) = sizeof(complex)
|
---|
120 | sizeof(doublereal) = 2*sizeof(real)
|
---|
121 | sizeof(real) = sizeof(integer)
|
---|
122 | sizeof(real) = sizeof(logical)
|
---|
123 | sizeof(real) = 2*sizeof(shortint)
|
---|
124 | EQUIVALENCEs may not be translated correctly if these
|
---|
125 | assumptions are violated.
|
---|
126 |
|
---|
127 | On machines, such as those using a DEC Alpha processor, on
|
---|
128 | which sizeof(short) == 2, sizeof(int) == sizeof(float) == 4,
|
---|
129 | and sizeof(long) == sizeof(double) == 8, it suffices to
|
---|
130 | modify f2c.h by removing the first occurrence of "long "
|
---|
131 | on each line containing "long ", e.g., by issuing the
|
---|
132 | commands
|
---|
133 | mv f2c.h f2c.h0
|
---|
134 | sed 's/long //' f2c.h0 >f2c.h
|
---|
135 | On such machines, one can enable INTEGER*8 by uncommenting
|
---|
136 | the typedef of longint in f2c.h, so it reads
|
---|
137 | typedef long longint;
|
---|
138 | by compiling libI77 with -DAllow_TYQUAD, and by adjusting
|
---|
139 | libF77/makefile as described in libF77/README.
|
---|
140 |
|
---|
141 | Some machines may have sizeof(int) == 4, sizeof(float) == 8,
|
---|
142 | and sizeof(long long) == 8. On such machines, adjust f2c.h
|
---|
143 | by changing "long int " to "long long ", e.g., by saying
|
---|
144 | mv f2c.h f2c.h0
|
---|
145 | sed 's/long int /long long /' f2c.h0 >f2c.h
|
---|
146 | One can enable INTEGER*8 on such machines as described
|
---|
147 | above, but with
|
---|
148 | typedef long long longint;
|
---|
149 |
|
---|
150 | There exists a C compiler that objects to the lines
|
---|
151 | typedef VOID C_f; /* complex function */
|
---|
152 | typedef VOID H_f; /* character function */
|
---|
153 | typedef VOID Z_f; /* double complex function */
|
---|
154 | in f2c.h . If yours is such a compiler, do two things:
|
---|
155 | 1. Complain to your vendor about this compiler bug.
|
---|
156 | 2. Find the line
|
---|
157 | #define VOID void
|
---|
158 | in f2c.h and change it to
|
---|
159 | #define VOID int
|
---|
160 | (For readability, the f2c.h lines shown above have had two
|
---|
161 | tabs inserted before their first character.)
|
---|
162 |
|
---|
163 | FTP: All the material described above is now available by anonymous
|
---|
164 | ftp from netlib.bell-labs.com (login: anonymous; Password: your
|
---|
165 | E-mail address; cd netlib/f2c). Note that you can say, e.g.,
|
---|
166 |
|
---|
167 | cd /netlib/f2c/src
|
---|
168 | binary
|
---|
169 | prompt
|
---|
170 | mget *.gz
|
---|
171 |
|
---|
172 | to get all the .gz files in src. You must uncompress the .gz
|
---|
173 | files once you have a copy of them, e.g., by
|
---|
174 |
|
---|
175 | gzip -dN *.gz
|
---|
176 |
|
---|
177 | You can also get the entire f2c tree as a tar file:
|
---|
178 |
|
---|
179 | ftp://netlib.bell-labs.com/netlib/f2c.tar
|
---|
180 |
|
---|
181 | (which is a synthetic file -- created on the fly and not visible
|
---|
182 | to ftp's "ls" or "dir" commands).
|
---|
183 |
|
---|
184 | Subdirectory msdos contains two PC versions of f2c,
|
---|
185 | f2c.exe.gz and f2cx.exe.gz; the latter uses extended memory.
|
---|
186 | The README in that directory provides more details.
|
---|
187 |
|
---|
188 | Changes appear first in the f2c files available by E-mail
|
---|
189 | from netlib@netlib.bell-labs.com. If the deamons work right,
|
---|
190 | changed files are available the next day by ftp from
|
---|
191 | netlib.bell-labs.com. In due course, they reach other netlib servers.
|
---|
192 |
|
---|
193 | CHANGE NOTIFICATION:
|
---|
194 | Send the E-mail message
|
---|
195 | subscribe f2c
|
---|
196 | to netlib@netlib.bell-labs.com to request notification of new and
|
---|
197 | changed f2c files. (Beware that automatically sent change
|
---|
198 | notifications may reach you before changes have reached
|
---|
199 | ftp://netlib.bell-labs.com/netlib/f2c or to other netlib servers.)
|
---|
200 | Send the E-mail message
|
---|
201 | unsubscribe f2c
|
---|
202 | to recant your notification request.
|
---|
203 |
|
---|
204 | -----------------
|
---|
205 | Recent change log (partial)
|
---|
206 | -----------------
|
---|
207 |
|
---|
208 | Mon May 13 23:35:26 EDT 1996
|
---|
209 | Recognize Fortran 90's /= as a synonym for .NE.. (<> remains a
|
---|
210 | synonym for .NE..)
|
---|
211 | Emit an empty int function of no arguments to supply an external
|
---|
212 | name to named block data subprograms (so they can be called somewhere
|
---|
213 | to force them to be loaded from a library).
|
---|
214 | Fix bug (memory fault) in handling the following illegal Fortran:
|
---|
215 | parameter(i=1)
|
---|
216 | equivalence(i,j)
|
---|
217 | end
|
---|
218 | Treat cdabs, cdcos, cdexp, cdlog, cdsin, and cdsqrt as synonyms for
|
---|
219 | the double complex intrinsics zabs, zcos, zexp, zlog, zsin, and zsqrt,
|
---|
220 | respectively, unless -cd is specified.
|
---|
221 | Recognize the Fortran 90 bit-manipulation intrinsics btest, iand,
|
---|
222 | ibclr, ibits, ibset, ieor, ior, ishft, and ishftc, unless -i90 is
|
---|
223 | specified. Note that iand, ieor, and ior are thus now synonyms for
|
---|
224 | "and", "xor", and "or", respectively.
|
---|
225 | Add three macros (bit_test, bit_clear, bit_set) to f2c.h for use
|
---|
226 | with btest, ibclr, and ibset, respectively. Add new functions
|
---|
227 | [lq]bit_bits, [lq]bit_shift, and [lq]_bit_cshift to libF77 for
|
---|
228 | use with ibits, ishft, and ishftc, respectively.
|
---|
229 | Add integer function ftell(unit) (returning -1 on error) and
|
---|
230 | subroutine fseek(unit, offset, whence, *) to libI77 (with branch to
|
---|
231 | label * on error).
|
---|
232 |
|
---|
233 | Tue May 14 23:21:12 EDT 1996
|
---|
234 | Fix glitch (possible memory fault, or worse) in handling multiple
|
---|
235 | entry points with names over 28 characters long.
|
---|
236 |
|
---|
237 | Mon Jun 10 01:20:16 EDT 1996
|
---|
238 | Update netlib E-mail and ftp addresses in f2c/readme and
|
---|
239 | f2c/src/readme (which are different files) -- to reflect the upcoming
|
---|
240 | breakup of AT&T.
|
---|
241 | libf77: trivial tweaks to F77_aloc.c and system_.c; Version.c not
|
---|
242 | changed.
|
---|
243 | libi77: Adjust rsli.c and lread.c so internal list input with too
|
---|
244 | few items in the input string will honor end= .
|
---|
245 |
|
---|
246 | Mon Jun 10 22:59:57 EDT 1996
|
---|
247 | Add Bits_per_Byte to sysdep.h and adjust definition of Table_size
|
---|
248 | to depend on Bits_per_Byte (forcing Table_size to be a power of 2); in
|
---|
249 | lex.c, change "comstart[c & 0xfff]" to "comstart[c & (Table_size-1)]"
|
---|
250 | to avoid an out-of-range subscript on end-of-file.
|
---|
251 |
|
---|
252 | Wed Jun 12 00:24:28 EDT 1996
|
---|
253 | Fix bug in output.c (dereferencing a freed pointer) revealed in
|
---|
254 | print * !np in out_call in output.c clobbered by free
|
---|
255 | end !during out_expr.
|
---|
256 |
|
---|
257 | Wed Jun 19 08:12:47 EDT 1996
|
---|
258 | f2c.h: add types uinteger, ulongint (for libF77); add qbit_clear
|
---|
259 | and qbit_set macros (in a commented-out section) for integer*8.
|
---|
260 | For integer*8, use qbit_clear and qbit_set for ibclr and ibset.
|
---|
261 | libf77: add casts to unsigned in [lq]bitshft.c.
|
---|
262 |
|
---|
263 | Thu Jun 20 13:30:43 EDT 1996
|
---|
264 | Complain at character*(*) in common (rather than faulting).
|
---|
265 | Fix bug in recognizing hex constants that start with "16#" (e.g.,
|
---|
266 | 16#1234abcd, which is a synonym for z'1234abcd').
|
---|
267 | Fix bugs in constant folding of expressions involving btest, ibclr,
|
---|
268 | and ibset.
|
---|
269 | Fix bug in constant folding of rshift(16#80000000, -31) (on a 32-bit
|
---|
270 | machine; more generally, the bug was in constant folding of
|
---|
271 | rshift(ibset(0,NBITS-1), 1-NBITS) when f2c runs on a machine with
|
---|
272 | long ints having NBITS bits.
|
---|
273 |
|
---|
274 | Mon Jun 24 07:58:53 EDT 1996
|
---|
275 | Adjust struct Literal and newlabel() function to accommodate huge
|
---|
276 | source files (with more than 32767 newlabel() invocations).
|
---|
277 | Omit .c file when the .f file has a missing final end statement.
|
---|
278 |
|
---|
279 | Wed Jun 26 14:00:02 EDT 1996
|
---|
280 | libi77: Add discussion of MXUNIT (highest allowed Fortran unit number)
|
---|
281 | to libI77/README.
|
---|
282 |
|
---|
283 | Fri Jun 28 14:16:11 EDT 1996
|
---|
284 | Fix glitch with -onetrip: the temporary variable used for nonconstant
|
---|
285 | initial loop variable values was recycled too soon. Example:
|
---|
286 | do i = j+1, k
|
---|
287 | call foo(i+1) ! temp for j+1 was reused here
|
---|
288 | enddo
|
---|
289 | end
|
---|
290 |
|
---|
291 | Tue Jul 2 16:11:27 EDT 1996
|
---|
292 | formatdata.c: add a 0 to the end of the basetype array (for TYBLANK)
|
---|
293 | (an omission that was harmless on most machines).
|
---|
294 | expr.c: fix a dereference of NULL that was only possible with buggy
|
---|
295 | input, such as
|
---|
296 | subroutine $sub(s) ! the '$' is erroneous
|
---|
297 | character s*(*)
|
---|
298 | s(1:) = ' '
|
---|
299 | end
|
---|
300 |
|
---|
301 | Sat Jul 6 00:44:56 EDT 1996
|
---|
302 | Fix glitch in the intrinsic "real" function when applied to a
|
---|
303 | complex (or double complex) variable and passed as an argument to
|
---|
304 | some intrinsic functions. Example:
|
---|
305 | complex a
|
---|
306 | b = sqrt(real(a))
|
---|
307 | end
|
---|
308 | Fix glitch (only visible if you do not use f2c's malloc and the
|
---|
309 | malloc you do use is defective in the sense that malloc(0) returns 0)
|
---|
310 | in handling include files that end with another include (perhaps
|
---|
311 | followed by comments).
|
---|
312 | Fix glitch with character*(*) arguments named "h" and "i" when
|
---|
313 | the body of the subroutine invokes the intrinsic LEN function.
|
---|
314 | Arrange that after a previous "f2c -P foo.f" has produced foo.P,
|
---|
315 | running "f2c foo.P foo.f" will produce valid C when foo.f contains
|
---|
316 | call sub('1234')
|
---|
317 | end
|
---|
318 | subroutine sub(msg)
|
---|
319 | end
|
---|
320 | Specifically, the length argument in "call sub" is now suppressed.
|
---|
321 | With or without foo.P, it is also now suppressed when the order of
|
---|
322 | subprograms in file foo.f is reversed:
|
---|
323 | subroutine sub(msg)
|
---|
324 | end
|
---|
325 | call sub('1234')
|
---|
326 | end
|
---|
327 | Adjust copyright notices to reflect AT&T breakup.
|
---|
328 |
|
---|
329 | Wed Jul 10 09:25:49 EDT 1996
|
---|
330 | Fix bug (possible memory fault) in handling erroneously placed
|
---|
331 | and inconsistent declarations. Example that faulted:
|
---|
332 | character*1 w(8)
|
---|
333 | call foo(w)
|
---|
334 | end
|
---|
335 | subroutine foo(m)
|
---|
336 | data h /0.5/
|
---|
337 | integer m(2) ! should be before data
|
---|
338 | end
|
---|
339 | Fix bug (possible fault) in handling illegal "if" constructions.
|
---|
340 | Example (that faulted):
|
---|
341 | subroutine foo(i,j)
|
---|
342 | if (i) then ! bug: i is integer, not logical
|
---|
343 | else if (j) then ! bug: j is integer, not logical
|
---|
344 | endif
|
---|
345 | end
|
---|
346 | Fix glitch with character*(*) argument named "ret_len" to a
|
---|
347 | character*(*) function.
|
---|
348 |
|
---|
349 | Wed Jul 10 23:04:16 EDT 1996
|
---|
350 | Fix more glitches in the intrinsic "real" function when applied to a
|
---|
351 | complex (or double complex) variable and passed as an argument to
|
---|
352 | some intrinsic functions. Example:
|
---|
353 | complex a, b
|
---|
354 | r = sqrt(real(conjg(a))) + sqrt(real(a*b))
|
---|
355 | end
|
---|
356 |
|
---|
357 | Thu Jul 11 17:27:16 EDT 1996
|
---|
358 | Fix a memory fault associated with complicated, illegal input.
|
---|
359 | Example:
|
---|
360 | subroutine goo
|
---|
361 | character a
|
---|
362 | call foo(a) ! inconsistent with subsequent def and call
|
---|
363 | end
|
---|
364 | subroutine foo(a)
|
---|
365 | end
|
---|
366 | call foo(a)
|
---|
367 | end
|
---|
368 |
|
---|
369 | Wed Jul 17 19:18:28 EDT 1996
|
---|
370 | Fix yet another case of intrinsic "real" applied to a complex
|
---|
371 | argument. Example:
|
---|
372 | complex a(3)
|
---|
373 | x = sqrt(real(a(2))) ! gave error message about bad tag
|
---|
374 | end
|
---|
375 |
|
---|
376 | Mon Aug 26 11:28:57 EDT 1996
|
---|
377 | Tweak sysdep.c for non-Unix systems in which process ID's can be
|
---|
378 | over 5 digits long.
|
---|
379 |
|
---|
380 | Tue Aug 27 08:31:32 EDT 1996
|
---|
381 | Adjust the ishft intrinsic to use unsigned right shifts. (Previously,
|
---|
382 | a negative constant second operand resulted in a possibly signed shift.)
|
---|
383 |
|
---|
384 | Thu Sep 12 14:04:07 EDT 1996
|
---|
385 | equiv.c: fix glitch with -DKR_headers.
|
---|
386 | libi77: fmtlib.c: fix bug in printing the most negative integer.
|
---|
387 |
|
---|
388 | Fri Sep 13 08:54:40 EDT 1996
|
---|
389 | Diagnose some illegal appearances of substring notation.
|
---|
390 |
|
---|
391 | Tue Sep 17 17:48:09 EDT 1996
|
---|
392 | Fix fault in handling some complex parameters. Example:
|
---|
393 | subroutine foo(a)
|
---|
394 | double complex a, b
|
---|
395 | parameter(b = (0,1))
|
---|
396 | a = b ! f2c faulted here
|
---|
397 | end
|
---|
398 |
|
---|
399 | Thu Sep 26 07:47:10 EDT 1996
|
---|
400 | libi77: fmt.h: for formatted writes of negative integer*1 values,
|
---|
401 | make ic signed on ANSI systems. If formatted writes of integer*1
|
---|
402 | values trouble you when using a K&R C compiler, switch to an ANSI
|
---|
403 | compiler or use a compiler flag that makes characters signed.
|
---|
404 |
|
---|
405 | Tue Oct 1 14:41:36 EDT 1996
|
---|
406 | Give a better error message when dummy arguments appear in data
|
---|
407 | statements.
|
---|
408 |
|
---|
409 | Thu Oct 17 13:37:22 EDT 1996
|
---|
410 | Fix bug in typechecking arguments to character and complex (or
|
---|
411 | double complex) functions; the bug could cause length arguments
|
---|
412 | for character arguments to be omitted on invocations appearing
|
---|
413 | textually after the first invocation. For example, in
|
---|
414 | subroutine foo
|
---|
415 | character c
|
---|
416 | complex zot
|
---|
417 | call goo(zot(c), zot(c))
|
---|
418 | end
|
---|
419 | the length was omitted from the second invocation of zot, and
|
---|
420 | there was an erroneous error message about inconsistent calling
|
---|
421 | sequences.
|
---|
422 |
|
---|
423 | Wed Dec 4 13:59:14 EST 1996
|
---|
424 | Fix bug revealed by
|
---|
425 | subroutine test(cdum,rdum)
|
---|
426 | complex cdum
|
---|
427 | rdum=cos(real(cdum)) ! "Unexpected tag 3 in opconv_fudge"
|
---|
428 | end
|
---|
429 | Fix glitch in parsing "DO 10 D0 = 1, 10".
|
---|
430 | Fix glitch in parsing
|
---|
431 | real*8 x
|
---|
432 | real*8 x ! erroneous "incompatible type" message
|
---|
433 | call foo(x)
|
---|
434 | end
|
---|
435 | lib[FI]77/makefile: add comment about omitting -x under Solaris.
|
---|
436 |
|
---|
437 | Mon Dec 9 23:15:02 EST 1996
|
---|
438 | Fix glitch in parameter adjustments for arrays whose lower
|
---|
439 | bound depends on a scalar argument. Example:
|
---|
440 | subroutine bug(p,z,m,n)
|
---|
441 | integer z(*),m,n
|
---|
442 | double precision p(z(m):z(m) + n) ! p_offset botched
|
---|
443 | call foo(p(0), p(n))
|
---|
444 | end
|
---|
445 | libi77: complain about non-positive rec= in direct read and write
|
---|
446 | statements.
|
---|
447 | libf77: trivial adjustments; Version.c not changed.
|
---|
448 |
|
---|
449 | Wed Feb 12 00:18:03 EST 1997
|
---|
450 | output.c: fix (seldom problematic) glitch in out_call: put parens
|
---|
451 | around the ... in a test of the form "if (q->tag == TADDR && ...)".
|
---|
452 | vax.c: fix bug revealed in the "psi_offset =" assignment in the
|
---|
453 | following example:
|
---|
454 | subroutine foo(psi,m)
|
---|
455 | integer z(100),m
|
---|
456 | common /a/ z
|
---|
457 | double precision psi(z(m):z(m) + 10)
|
---|
458 | call foo(m+1, psi(0),psi(10))
|
---|
459 | end
|
---|
460 |
|
---|
461 | Mon Feb 24 23:44:54 EST 1997
|
---|
462 | For consistency with f2c's current treatment of adjacent character
|
---|
463 | strings in FORMAT statements, recognize a Hollerith string following
|
---|
464 | a string (and merge adjacent strings in FORMAT statements).
|
---|
465 |
|
---|
466 | Wed Feb 26 13:41:11 EST 1997
|
---|
467 | New libf2c.zip, a combination of the libf77 and libi77 bundles (and
|
---|
468 | available only by ftp).
|
---|
469 | libf77: adjust functions with a complex output argument to permit
|
---|
470 | aliasing it with input arguments. (For now, at least, this is just
|
---|
471 | for possible benefit of g77.)
|
---|
472 | libi77: tweak to ftell_.c for systems with strange definitions of
|
---|
473 | SEEK_SET, etc.
|
---|
474 |
|
---|
475 | Tue Apr 8 20:57:08 EDT 1997
|
---|
476 | libf77: [cz]_div.c: tweaks invisible on most systems (that may
|
---|
477 | improve things slightly with optimized compilation on systems that use
|
---|
478 | gratuitous extra precision).
|
---|
479 | libi77: fmt.c: adjust to complain at missing numbers in formats
|
---|
480 | (but still treat missing ".nnn" as ".0").
|
---|
481 |
|
---|
482 | Fri Apr 11 14:05:57 EDT 1997
|
---|
483 | libi77: err.c: attempt to make stderr line buffered rather than
|
---|
484 | fully buffered. (Buffering is needed for format items T and TR.)
|
---|
485 |
|
---|
486 | Thu Apr 17 22:42:43 EDT 1997
|
---|
487 | libf77: add F77_aloc.o to makefile (and makefile.u in libf2c.zip).
|
---|
488 |
|
---|
489 | Fri Apr 25 19:32:09 EDT 1997
|
---|
490 | libf77: add [de]time_.c (which may give trouble on some systems).
|
---|
491 |
|
---|
492 | Tue May 27 09:18:52 EDT 1997
|
---|
493 | libi77: ftell_.c: fix typo that caused the third argument to be
|
---|
494 | treated as 2 on some systems.
|
---|
495 |
|
---|
496 | Mon Jun 9 00:04:37 EDT 1997
|
---|
497 | libi77 (and libf2c.zip): adjust include order in err.c lread.c wref.c
|
---|
498 | rdfmt.c to include fmt.h (etc.) after system includes. Version.c not
|
---|
499 | changed.
|
---|
500 |
|
---|
501 | Mon Jun 9 14:29:13 EDT 1997
|
---|
502 | src/gram.c updated; somehow it did not reflect the change of
|
---|
503 | 19961001 to gram.dcl.
|
---|
504 |
|
---|
505 | Mon Jul 21 16:04:54 EDT 1997
|
---|
506 | proc.c: fix glitch in logic for "nonpositive dimension" message.
|
---|
507 | libi77: inquire.c: always include string.h (for possible use with
|
---|
508 | -DNON_UNIX_STDIO); Version.c not changed.
|
---|
509 |
|
---|
510 | Thu Jul 24 17:11:23 EDT 1997
|
---|
511 | Tweak "Notice" to reflect the AT&T breakup -- we missed it when
|
---|
512 | updating the copyright notices in the source files last summer.
|
---|
513 | Adjust src/makefile so malloc.o is not used by default, but can
|
---|
514 | be specified with "make MALLOC=malloc.o".
|
---|
515 | Add comments to src/README about the "CRAY" T3E.
|
---|
516 |
|
---|
517 | Tue Aug 5 14:53:25 EDT 1997
|
---|
518 | Add definition of calloc to malloc.c; this makes f2c's malloc
|
---|
519 | work on some systems where trouble hitherto arose because references
|
---|
520 | to calloc brought in the system's malloc. (On sensible systems,
|
---|
521 | calloc is defined separately from malloc. To avoid confusion on
|
---|
522 | other systems, f2c/malloc.c now defines calloc.)
|
---|
523 | libi77: lread.c: adjust to accord with a change to the Fortran 8X
|
---|
524 | draft (in 1990 or 1991) that rescinded permission to elide quote marks
|
---|
525 | in namelist input of character data; to get the old behavior, compile
|
---|
526 | with F8X_NML_ELIDE_QUOTES #defined. wrtfmt.o: wrt_G: tweak to print
|
---|
527 | the right number of 0's for zero under G format.
|
---|
528 |
|
---|
529 | Sat Aug 16 05:45:32 EDT 1997
|
---|
530 | libi77: iio.c: fix bug in internal writes to an array of character
|
---|
531 | strings that sometimes caused one more array element than required by
|
---|
532 | the format to be blank-filled. Example: format(1x).
|
---|
533 |
|
---|
534 | Wed Sep 17 00:39:29 EDT 1997
|
---|
535 | libi77: fmt.[ch] rdfmt.c wrtfmt.c: tweak struct syl for machines
|
---|
536 | with 64-bit pointers and 32-bit ints that did not 64-bit align
|
---|
537 | struct syl (e.g., Linux on the DEC Alpha). This change should be
|
---|
538 | invisible on other machines.
|
---|
539 |
|
---|
540 | Sun Sep 21 22:05:19 EDT 1997
|
---|
541 | libf77: [de]time_.c (Unix systems only): change return type to double.
|
---|
542 |
|
---|
543 | Thu Dec 4 22:10:09 EST 1997
|
---|
544 | Fix bug with handling large blocks of comments (over 4k); parts of the
|
---|
545 | second and subsequent blocks were likely to be lost (not copied into
|
---|
546 | comments in the resulting C). Allow comment lines to be longer before
|
---|
547 | breaking them.
|
---|
548 |
|
---|
549 | Mon Jan 19 17:19:27 EST 1998
|
---|
550 | makefile: change the rule for making gram.c to one for making gram1.c;
|
---|
551 | henceforth, asking netlib to "send all from f2c/src" will bring you a
|
---|
552 | working gram.c. Nowadays there are simply too many broken versions of
|
---|
553 | yacc floating around.
|
---|
554 | libi77: backspace.c: for b->ufmt==0, change sizeof(int) to
|
---|
555 | sizeof(uiolen). On machines where this would make a difference, it is
|
---|
556 | best for portability to compile libI77 with -DUIOLEN_int, which will
|
---|
557 | render the change invisible.
|
---|
558 |
|
---|
559 | Tue Feb 24 08:35:33 EST 1998
|
---|
560 | makefile: remove gram.c from the "make clean" rule.
|
---|
561 |
|
---|
562 | Wed Feb 25 08:29:39 EST 1998
|
---|
563 | makefile: change CFLAGS assignment to -O; add "veryclean" rule.
|
---|
564 |
|
---|
565 | Wed Mar 4 13:13:21 EST 1998
|
---|
566 | libi77: open.c: fix glitch in comparing file names under
|
---|
567 | -DNON_UNIX_STDIO.
|
---|
568 |
|
---|
569 | Mon Mar 9 23:56:56 EST 1998
|
---|
570 | putpcc.c: omit an unnecessary temporary variable in computing
|
---|
571 | (expr)**3.
|
---|
572 | libf77, libi77: minor tweaks to make some C++ compilers happy;
|
---|
573 | Version.c not changed.
|
---|
574 |
|
---|
575 | Wed Mar 18 18:08:47 EST 1998
|
---|
576 | libf77: minor tweaks to [ed]time_.c; Version.c not changed.
|
---|
577 | libi77: endfile.c, open.c: acquire temporary files from tmpfile(),
|
---|
578 | unless compiled with -DNON_ANSI_STDIO, which uses mktemp().
|
---|
579 | New buffering scheme independent of NON_UNIX_STDIO for handling T
|
---|
580 | format items. Now -DNON_UNIX_STDIO is no longer be necessary for
|
---|
581 | Linux, and libf2c no longer causes stderr to be buffered -- the former
|
---|
582 | setbuf or setvbuf call for stderr was to make T format items work.
|
---|
583 | open.c: use the Posix access() function to check existence or
|
---|
584 | nonexistence of files, except under -DNON_POSIX_STDIO, where trial
|
---|
585 | fopen calls are used. In open.c, fix botch in changes of 19980304.
|
---|
586 | libf2c.zip: the PC makefiles are now set for NT/W95, with comments
|
---|
587 | about changes for DOS.
|
---|
588 |
|
---|
589 | Fri Apr 3 17:22:12 EST 1998
|
---|
590 | Adjust fix of 19960913 to again permit substring notation on
|
---|
591 | character variables in data statements.
|
---|
592 |
|
---|
593 | Sun Apr 5 19:26:50 EDT 1998
|
---|
594 | libi77: wsfe.c: make $ format item work: this was lost in the changes
|
---|
595 | of 17 March 1998.
|
---|
596 |
|
---|
597 | Sat May 16 19:08:51 EDT 1998
|
---|
598 | Adjust output of ftnlen constants: rather than appending L,
|
---|
599 | prepend (ftnlen). This should make the resulting C more portable,
|
---|
600 | e.g., to systems (such as DEC Alpha Unix systems) on which long
|
---|
601 | may be longer than ftnlen.
|
---|
602 | Adjust -r so it also casts REAL expressions passed to intrinsic
|
---|
603 | functions to REAL.
|
---|
604 |
|
---|
605 | Wed May 27 16:02:35 EDT 1998
|
---|
606 | libf2c.zip: tweak description of compiling libf2c for INTEGER*8
|
---|
607 | to accord with makefile.u rather than libF77/makefile.
|
---|
608 |
|
---|
609 | Thu May 28 22:45:59 EDT 1998
|
---|
610 | libi77: backspace.c dfe.c due.c iio.c lread.c rsfe.c sue.c wsfe.c:
|
---|
611 | set f__curunit sooner so various error messages will correctly
|
---|
612 | identify the I/O unit involved.
|
---|
613 | libf2c.zip: above, plus tweaks to PC makefiles: for some purposes,
|
---|
614 | it's still best to compile with -DMSDOS (even for use with NT).
|
---|
615 |
|
---|
616 | Thu Jun 18 01:22:52 EDT 1998
|
---|
617 | libi77: lread.c: modified so floating-point numbers (containing
|
---|
618 | either a decimal point or an exponent field) are treated as errors
|
---|
619 | when they appear as list input for integer data. Compile lread.c with
|
---|
620 | -DALLOW_FLOAT_IN_INTEGER_LIST_INPUT to restore the old behavior.
|
---|
621 |
|
---|
622 | Mon Aug 31 10:38:54 EDT 1998
|
---|
623 | formatdata.c: if possible, and assuming doubles must be aligned on
|
---|
624 | double boundaries, use existing holes in DATA for common blocks to
|
---|
625 | force alignment of the block. For example,
|
---|
626 | block data
|
---|
627 | common /abc/ a, b
|
---|
628 | double precision a
|
---|
629 | integer b(2)
|
---|
630 | data b(2)/1/
|
---|
631 | end
|
---|
632 | used to generate
|
---|
633 | struct {
|
---|
634 | integer fill_1[3];
|
---|
635 | integer e_2;
|
---|
636 | doublereal e_3;
|
---|
637 | } abc_ = { {0}, 1, 0. };
|
---|
638 | and now generates
|
---|
639 | struct {
|
---|
640 | doublereal fill_1[1];
|
---|
641 | integer fill_2[1];
|
---|
642 | integer e_3;
|
---|
643 | } abc_ = { {0}, {0}, 1 };
|
---|
644 | In the old generated C, e_3 was added to force alignment; in the new C,
|
---|
645 | fill_1 does this job.
|
---|
646 |
|
---|
647 | Mon Sep 7 19:48:51 EDT 1998
|
---|
648 | libi77: move e_wdfe from sfe.c to dfe.c, where it was originally.
|
---|
649 | Why did it ever move to sfe.c?
|
---|
650 |
|
---|
651 | Tue Sep 8 10:22:50 EDT 1998
|
---|
652 | Treat dreal as a synonym for dble unless -cd is specified on the
|
---|
653 | command line.
|
---|
654 |
|
---|
655 | Sun Sep 13 22:23:41 EDT 1998
|
---|
656 | format.c: fix bug in writing prototypes under f2c -A ... *.P:
|
---|
657 | under some circumstances involving external functions with no known
|
---|
658 | type, a null pointer was passed to printf.
|
---|
659 |
|
---|
660 | Tue Oct 20 23:25:54 EDT 1998
|
---|
661 | Comments added to libf2c/README and libF77/README, pointing out
|
---|
662 | the need to modify signal1.h on some systems.
|
---|
663 |
|
---|
664 | Thu Nov 12 15:34:09 EST 1998
|
---|
665 | libf77, libf2c.zip: minor tweaks to [de]time_.c and the makefiles,
|
---|
666 | so makefile.sy, makefile.vc, and makefile.wat deal with [de]time_.c.
|
---|
667 |
|
---|
668 | Wed Feb 10 22:59:52 EST 1999
|
---|
669 | defs.h lex.c: permit long names (up to at least roughly
|
---|
670 | MAX_SHARPLINE_LEN = 1000 characters long) in #line lines (which only
|
---|
671 | matters under -g).
|
---|
672 | fc: add -U option; recognize .so files.
|
---|
673 |
|
---|
674 | Sat Feb 13 10:18:27 EST 1999
|
---|
675 | libf2c: endfile.c, lread.c, signal1.h0: minor tweaks to make some
|
---|
676 | (C++) compilers happier; f77_aloc.c: make exit_() visible to C++
|
---|
677 | compilers. Version strings not changed.
|
---|
678 |
|
---|
679 | Thu Mar 11 23:14:02 EST 1999
|
---|
680 | Modify f2c (exec.c, expr.c) to diagnose incorrect mixing of types
|
---|
681 | when (f2c extended) intrinsic functions are involved, as in
|
---|
682 | (not(17) .and. 4). Catching this in the first executable statement
|
---|
683 | is a bit tricky, as some checking must be postponed until all statement
|
---|
684 | function declarations have been parsed. Thus there is a chance of
|
---|
685 | today's changes introducing bugs under (let us hope) unusual conditions.
|
---|
686 |
|
---|
687 | Sun Mar 28 13:17:44 EST 1999
|
---|
688 | lex.c: tweak to get the file name right in error messages caused
|
---|
689 | by statements just after a # nnn "filename" line emitted by the C
|
---|
690 | preprocessor. (The trouble is that the line following the # nnn line
|
---|
691 | must be read to see if it is a continuation of the stuff that preceded
|
---|
692 | the # nnn line.) When # nnn "filename" lines appear among the lines
|
---|
693 | for a Fortran statement, the filename reported in an error message for
|
---|
694 | the statement should now be the file that was current when the first
|
---|
695 | line of the statement was read.
|
---|
696 |
|
---|
697 | Sun May 2 22:38:25 EDT 1999
|
---|
698 | libf77, libi77, libf2c.zip: make getenv_() more portable (call
|
---|
699 | getenv() rather than knowing about char **environ); adjust some
|
---|
700 | complex intrinsics to work with overlapping arguments (caused by
|
---|
701 | inappropriate use of equivalence); open.c: get "external" versus
|
---|
702 | "internal" right in the error message if a file cannot be opened;
|
---|
703 | err.c: cast a pointer difference to (int) for %d; rdfmt.c: omit
|
---|
704 | fixed-length buffer that could be overwritten by formats Inn or Lnn
|
---|
705 | with nn > 83.
|
---|
706 |
|
---|
707 | Mon May 3 13:14:07 EDT 1999
|
---|
708 | "Invisible" changes to omit a few compiler warnings in f2c and
|
---|
709 | libf2c; two new casts in libf2c/open.c that matter with 64-bit longs,
|
---|
710 | and one more tweak (libf2c/c_log.c) for pathological equivalences.
|
---|
711 | Minor update to "fc" script: new -L flag and comment correction.
|
---|
712 |
|
---|
713 | Tue May 4 10:06:26 EDT 1999
|
---|
714 | libf77, libf2c.zip: forgot to copy yesterday's latest updates to
|
---|
715 | netlib.
|
---|
716 |
|
---|
717 | Fri Jun 18 02:33:08 EDT 1999
|
---|
718 | libf2c.zip: rename backspace.c backspac.c, and fix a glitch in it
|
---|
719 | -- b->ufd may change in t_runc(). (For now, it's still backspace.c
|
---|
720 | in the libi77 bundle.)
|
---|
721 |
|
---|
722 | Sun Jun 27 22:05:47 EDT 1999
|
---|
723 | libf2c.zip, libi77: rsne.c: fix bug in namelist input: a misplaced
|
---|
724 | increment could cause wrong array elements to be assigned; e.g.,
|
---|
725 | "&input k(5)=10*1 &end" assigned k(5) and k(15 .. 23).
|
---|
726 |
|
---|
727 |
|
---|
728 | Current timestamps of files in "all from f2c/src", sorted by time,
|
---|
729 | appear below (mm/dd/year hh:mm:ss). To bring your source up to date,
|
---|
730 | obtain source files with a timestamp later than the time shown in your
|
---|
731 | version.c. Note that the time shown in the current version.c is the
|
---|
732 | timestamp of the source module that immediately follows version.c below:
|
---|
733 |
|
---|
734 | 5/03/1999 12:46:15 version.c
|
---|
735 | 5/03/1999 12:39:35 formatdata.c
|
---|
736 | 5/03/1999 12:31:14 format.c
|
---|
737 | 5/03/1999 12:27:17 p1output.c
|
---|
738 | 5/03/1999 12:27:17 data.c
|
---|
739 | 5/03/1999 10:01:12 xsum0.out
|
---|
740 | 5/03/1999 9:59:36 io.c
|
---|
741 | 5/03/1999 9:59:36 misc.c
|
---|
742 | 5/03/1999 9:59:36 init.c
|
---|
743 | 3/26/1999 23:18:11 lex.c
|
---|
744 | 3/11/1999 16:44:17 expr.c
|
---|
745 | 3/11/1999 16:42:42 exec.c
|
---|
746 | 2/10/1999 17:43:01 defs.h
|
---|
747 | 9/08/1998 10:16:51 f2c.1
|
---|
748 | 9/08/1998 10:16:48 f2c.1t
|
---|
749 | 9/08/1998 10:14:53 intr.c
|
---|
750 | 5/16/1998 16:55:49 output.c
|
---|
751 | 4/03/1998 17:15:05 gram.c
|
---|
752 | 4/03/1998 17:14:59 gram.dcl
|
---|
753 | 3/09/1998 0:30:23 putpcc.c
|
---|
754 | 2/25/1998 8:18:04 makefile
|
---|
755 | 12/04/1997 17:44:11 niceprintf.c
|
---|
756 | 8/05/1997 10:31:26 malloc.c
|
---|
757 | 7/24/1997 17:10:55 README
|
---|
758 | 7/24/1997 16:06:19 Notice
|
---|
759 | 7/21/1997 12:58:44 proc.c
|
---|
760 | 2/11/1997 23:39:14 vax.c
|
---|
761 | 12/04/1996 13:07:53 gram.exec
|
---|
762 | 9/12/1996 12:12:46 equiv.c
|
---|
763 | 8/26/1996 9:41:13 sysdep.c
|
---|
764 | 7/09/1996 10:40:45 names.c
|
---|
765 | 7/04/1996 9:55:45 sysdep.h
|
---|
766 | 7/04/1996 9:55:43 put.c
|
---|
767 | 7/04/1996 9:55:41 pread.c
|
---|
768 | 7/04/1996 9:55:40 parse_args.c
|
---|
769 | 7/04/1996 9:55:36 mem.c
|
---|
770 | 7/04/1996 9:55:36 memset.c
|
---|
771 | 7/04/1996 9:55:35 main.c
|
---|
772 | 7/04/1996 9:55:29 error.c
|
---|
773 | 7/04/1996 9:55:27 cds.c
|
---|
774 | 7/03/1996 15:47:49 xsum.c
|
---|
775 | 6/19/1996 7:04:27 f2c.h
|
---|
776 | 6/19/1996 2:52:05 defines.h
|
---|
777 | 5/13/1996 0:40:32 gram.head
|
---|
778 | 2/25/1994 2:07:19 parse.h
|
---|
779 | 2/22/1994 19:07:20 iob.h
|
---|
780 | 2/22/1994 18:56:53 p1defs.h
|
---|
781 | 2/22/1994 18:53:46 output.h
|
---|
782 | 2/22/1994 18:51:14 names.h
|
---|
783 | 2/22/1994 18:30:41 format.h
|
---|
784 | 1/18/1994 18:12:52 tokens
|
---|
785 | 3/06/1993 14:13:58 gram.expr
|
---|
786 | 1/28/1993 9:03:16 ftypes.h
|
---|
787 | 4/06/1990 0:00:57 gram.io
|
---|
788 | 2/03/1990 0:58:26 niceprintf.h
|
---|
789 | 1/07/1990 1:20:01 usignal.h
|
---|
790 | 11/27/1989 8:27:37 machdefs.h
|
---|
791 | 7/01/1989 11:59:44 pccdefs.h
|
---|