. \" Definitions of F, L and LR for the benefit of systems
. \" whose -man lacks them...
.if t \%\&\f(CW\\$1\fR\\$2
f\^2c \(mi Convert Fortran 77 to C or C++
converts Fortran 77 source code in
to C (or C++) source files in the
If no Fortran files are named,
reads Fortran from standard input and
writes C on standard output.
are taken to be prototype
files, as produced by option
The following options have the same meaning as in
Compile code to check that subscripts are within declared array bounds.
Render INTEGER and LOGICAL as short,
INTEGER\(**4 as long int. Assume the default \fIlibF77\fR
and \fIlibI77\fR: allow only INTEGER\(**4 (and no LOGICAL)
variables in INQUIREs. Option
confirms the default rendering of INTEGER as long int.
Compile DO loops that are performed at least once if reached.
(Fortran 77 DO loops are not performed at all if the upper limit is smaller than the lower limit.)
Honor the case of variable and external names. Fortran keywords must be in
Make the default type of a variable `undefined' rather than using the default Fortran rules.
Suppress all warning messages.
only Fortran 66 compatibility warnings are suppressed.
The following options are peculiar to
Make local variables automatic rather than static
.SM "DATA, EQUIVALENCE, NAMELIST,"
Include original Fortran source as comments.
blocks in separate files:
bundles the separate files
into the output file, with comments that give an unbundling
Assume free-format input: accept text after column 72 and do not
pad fixed-format lines shorter than 72 characters with blanks.
Treat text appearing after column 72 as an error.
Include original Fortran line numbers in \f(CW#line\fR lines.
Emulate Fortran 66's treatment of Hollerith: try to align character strings on
word (or, if the option is
on double-word) boundaries.
variables may be assigned by
and array lengths are stored in short ints.
Use temporary values to enforce Fortran expression evaluation
where K&R (first edition) parenthesization rules allow rearrangement.
use double precision temporaries even for single-precision operands.
of ANSI (or C++) prototypes
for definitions in each input
When reading Fortran from standard input, write prototypes
at the beginning of standard output. Option
and gives exit status 4 if rerunning
may change prototypes or declarations.
Supply preprocessor definitions to make common-block members
look like local variables.
functions and operations to
confirms the default, which imitates
Cast values of REAL functions (including intrinsics) to REAL.
.SM DOUBLE PRECISION, COMPLEX
Preserve multidimensional subscripts.
Put temporary files in directory
forces odd-word alignment of doubles.
characters/word (default 4)
when initializing numeric variables with character data.
Do not implicitly recognize
Do not recognize \fIb\fRack\fIs\fRlash escapes
(\e", \e', \e0, \e\e, \eb, \ef, \en, \er, \et, \ev) in character strings.
Inhibit C output, but produce
Don't infer types of untyped
procedures from use as parameters to previously defined or prototyped
The resulting C invokes the support routines of
object code should be loaded by
intrinsic function library
`A Portable Fortran 77 Compiler',
\fIUNIX Time Sharing System Programmer's Manual\fR,
Tenth Edition, Volume 2, AT&T Bell Laboratories, 1990.
The diagnostics produced by
Floating-point constant expressions are simplified in
the floating-point arithmetic of the machine running
so they are typically accurate to at most 16 or 17 decimal places.