|
|
1.1 root 1:
2: F2C(1) F2C(1)
3:
4: NAME
5: f2c - Convert Fortran 77 to C or C++
6:
7: SYNOPSIS
8: f2c [ option ... ] file ...
9:
10: DESCRIPTION
11: F2c converts Fortran 77 source code in files with names end-
12: ing in `.f' or `.F' to C (or C++) source files in the cur-
13: rent directory, with `.c' substituted for the final `.f' or
14: `.F'. If no Fortran files are named, f2c reads Fortran from
15: standard input and writes C on standard output. File names
16: that end with `.p' or `.P' are taken to be prototype files,
17: as produced by option `-P', and are read first.
18:
19: The following options have the same meaning as in f77(1).
20:
21: -C Compile code to check that subscripts are within
22: declared array bounds.
23:
24: -I2 Render INTEGER and LOGICAL as short, INTEGER*4 as long
25: int. Assume the default libF77 and libI77: allow only
26: INTEGER*4 (and no LOGICAL) variables in INQUIREs.
27: Option `-I4' confirms the default rendering of INTEGER
28: as long int.
29:
30: -onetrip
31: Compile DO loops that are performed at least once if
32: reached. (Fortran 77 DO loops are not performed at all
33: if the upper limit is smaller than the lower limit.)
34:
35: -U Honor the case of variable and external names. Fortran
36: keywords must be in lower case.
37:
38: -u Make the default type of a variable `undefined' rather
39: than using the default Fortran rules.
40:
41: -w Suppress all warning messages. If the option is
42: `-w66', only Fortran 66 compatibility warnings are sup-
43: pressed.
44:
45: The following options are peculiar to f2c.
46:
47: -A Produce ANSI C. Default is old-style C.
48:
49: -a Make local variables automatic rather than static
50: unless they appear in a DATA, EQUIVALENCE, NAMELIST, or
51: SAVE statement.
52:
53: -C++ Output C++ code.
54:
55: -c Include original Fortran source as comments.
56:
57: Page 1 Local (printed 2/2/93)
58:
59: F2C(1) F2C(1)
60:
61: -E Declare uninitialized COMMON to be Extern (overridably
62: defined in f2c.h as extern).
63:
64: -ec Place uninitialized COMMON blocks in separate files:
65: COMMON /ABC/ appears in file abc_com.c. Option `-e1c'
66: bundles the separate files into the output file, with
67: comments that give an unbundling sed(1) script.
68:
69: -ext Complain about f77(1) extensions.
70:
71: -f Assume free-format input: accept text after column 72
72: and do not pad fixed-format lines shorter than 72 char-
73: acters with blanks.
74:
75: -72 Treat text appearing after column 72 as an error.
76:
77: -g Include original Fortran line numbers in #line lines.
78:
79: -h Emulate Fortran 66's treatment of Hollerith: try to
80: align character strings on word (or, if the option is
81: `-hd', on double-word) boundaries.
82:
83: -i2 Similar to -I2, but assume a modified libF77 and libI77
84: (compiled with -Df2c_i2), so INTEGER and LOGICAL vari-
85: ables may be assigned by INQUIRE and array lengths are
86: stored in short ints.
87:
88: -kr Use temporary values to enforce Fortran expression
89: evaluation where K&R (first edition) parenthesization
90: rules allow rearrangement. If the option is `-krd',
91: use double precision temporaries even for single-
92: precision operands.
93:
94: -P Write a file.P of ANSI (or C++) prototypes for defini-
95: tions in each input file.f or file.F. When reading
96: Fortran from standard input, write prototypes at the
97: beginning of standard output. Option -Ps implies -P
98: and gives exit status 4 if rerunning f2c may change
99: prototypes or declarations.
100:
101: -p Supply preprocessor definitions to make common-block
102: members look like local variables.
103:
104: -R Do not promote REAL functions and operations to DOUBLE
105: PRECISION. Option `-!R' confirms the default, which
106: imitates f77.
107:
108: -r Cast values of REAL functions (including intrinsics) to
109: REAL.
110:
111: -r8 Promote REAL to DOUBLE PRECISION, COMPLEX to DOUBLE
112: COMPLEX.
113:
114: Page 2 Local (printed 2/2/93)
115:
116: F2C(1) F2C(1)
117:
118: -s Preserve multidimensional subscripts.
119:
120: -Tdir
121: Put temporary files in directory dir.
122:
123: -w8 Suppress warnings when COMMON or EQUIVALENCE forces
124: odd-word alignment of doubles.
125:
126: -Wn Assume n characters/word (default 4) when initializing
127: numeric variables with character data.
128:
129: -z Do not implicitly recognize DOUBLE COMPLEX.
130:
131: -!bs Do not recognize backslash escapes (\", \', \0, \\, \b,
132: \f, \n, \r, \t, \v) in character strings.
133:
134: -!c Inhibit C output, but produce -P output.
135:
136: -!I Reject include statements.
137:
138: -!i8 Disallow INTEGER*8.
139:
140: -!it Don't infer types of untyped EXTERNAL procedures from
141: use as parameters to previously defined or prototyped
142: procedures.
143:
144: -!P Do not attempt to infer ANSI or C++ prototypes from
145: usage.
146:
147: The resulting C invokes the support routines of f77; object
148: code should be loaded by f77 or with ld(1) or cc(1) options
149: -lF77 -lI77 -lm. Calling conventions are those of f77: see
150: the reference below.
151:
152: FILES
153: file.[fF]
154: input file
155:
156: *.c output file
157:
158: /usr/include/f2c.h
159: header file
160:
161: /usr/lib/libF77.a
162: intrinsic function library
163:
164: /usr/lib/libI77.a
165: Fortran I/O library
166:
167: /lib/libc.a
168: C library, see section 3
169:
170: Page 3 Local (printed 2/2/93)
171:
172: F2C(1) F2C(1)
173:
174: SEE ALSO
175: S. I. Feldman and P. J. Weinberger, `A Portable Fortran 77
176: Compiler', UNIX Time Sharing System Programmer's Manual,
177: Tenth Edition, Volume 2, AT&T Bell Laboratories, 1990.
178:
179: DIAGNOSTICS
180: The diagnostics produced by f2c are intended to be self-
181: explanatory.
182:
183: BUGS
184: Floating-point constant expressions are simplified in the
185: floating-point arithmetic of the machine running f2c, so
186: they are typically accurate to at most 16 or 17 decimal
187: places.
188: Untypable EXTERNAL functions are declared int.
189:
190: Page 4 Local (printed 2/2/93)
191:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.