183 lines
5.7 KiB
Groff
183 lines
5.7 KiB
Groff
|
|
F2C(1) F2C(1)
|
|
|
|
NAME
|
|
f2c - Convert Fortran 77 to C or C++
|
|
|
|
SYNOPSIS
|
|
f2c [ option ... ] file ...
|
|
|
|
DESCRIPTION
|
|
F2c converts Fortran 77 source code in files with names end-
|
|
ing in `.f' or `.F' to C (or C++) source files in the
|
|
current directory, with `.c' substituted for the final `.f'
|
|
or `.F'. If no Fortran files are named, f2c reads Fortran
|
|
from standard input and writes C on standard output. File
|
|
names that end with `.p' or `.P' are taken to be prototype
|
|
files, as produced by option `-P', and are read first.
|
|
|
|
The following options have the same meaning as in f77(1).
|
|
|
|
-C Compile code to check that subscripts are within
|
|
declared array bounds.
|
|
|
|
-I2 Render INTEGER and LOGICAL as short, INTEGER*4 as long
|
|
int. Assume the default libF77 and libI77: allow only
|
|
INTEGER*4 (and no LOGICAL) variables in INQUIREs.
|
|
Option `-I4' confirms the default rendering of INTEGER
|
|
as long int.
|
|
|
|
-onetrip
|
|
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.)
|
|
|
|
-U Honor the case of variable and external names. Fortran
|
|
keywords must be in lower case.
|
|
|
|
-u Make the default type of a variable `undefined' rather
|
|
than using the default Fortran rules.
|
|
|
|
-w Suppress all warning messages. If the option is
|
|
`-w66', only Fortran 66 compatibility warnings are
|
|
suppressed.
|
|
|
|
The following options are peculiar to f2c.
|
|
|
|
-A Produce ANSI C. Default is old-style C.
|
|
|
|
-a Make local variables automatic rather than static
|
|
unless they appear in a DATA, EQUIVALENCE, NAMELIST, or
|
|
SAVE statement.
|
|
|
|
-C++ Output C++ code.
|
|
|
|
-c Include original Fortran source as comments.
|
|
|
|
Page 1 Tenth Edition (printed 4/25/91)
|
|
|
|
F2C(1) F2C(1)
|
|
|
|
-E Declare uninitialized COMMON to be Extern (overridably
|
|
defined in f2c.h as extern).
|
|
|
|
-ec Place uninitialized COMMON blocks in separate files:
|
|
COMMON /ABC/ appears in file abc_com.c. Option `-e1c'
|
|
bundles the separate files into the output file, with
|
|
comments that give an unbundling sed(1) script.
|
|
|
|
-ext Complain about f77(1) extensions.
|
|
|
|
-g Include original Fortran line numbers as comments.
|
|
|
|
-h Try to align character strings on word (or, if the
|
|
option is `-hd', on double-word) boundaries.
|
|
|
|
-i2 Similar to -I2, but assume a modified libF77 and libI77
|
|
(compiled with -Df2c_i2), so INTEGER and LOGICAL vari-
|
|
ables may be assigned by INQUIRE and array lengths are
|
|
stored in short ints.
|
|
|
|
-kr Use temporary values to enforce Fortran expression
|
|
evaluation where K&R (first edition) parenthesization
|
|
rules allow rearrangement. If the option is `-krd',
|
|
use double precision temporaries even for single-
|
|
precision operands.
|
|
|
|
-P Write a file.P of ANSI (or C++) prototypes for pro-
|
|
cedures defined in each input file.f or file.F. When
|
|
reading Fortran from standard input, write prototypes
|
|
at the beginning of standard output. Implies -A unless
|
|
option `-C++' is present. Option -Ps implies -P , and
|
|
gives exit status 4 if rerunning f2c may change proto-
|
|
types or declarations.
|
|
|
|
-p Supply preprocessor definitions to make common-block
|
|
members look like local variables.
|
|
|
|
-R Do not promote REAL functions and operations to DOUBLE
|
|
PRECISION. Option `-!R' confirms the default, which
|
|
imitates f77.
|
|
|
|
-r Cast values of REAL functions (including intrinsics) to
|
|
REAL.
|
|
|
|
-r8 Promote REAL to DOUBLE PRECISION, COMPLEX to DOUBLE
|
|
COMPLEX.
|
|
|
|
-Tdir
|
|
Put temporary files in directory dir.
|
|
|
|
-w8 Suppress warnings when COMMON or EQUIVALENCE forces
|
|
odd-word alignment of doubles.
|
|
|
|
Page 2 Tenth Edition (printed 4/25/91)
|
|
|
|
F2C(1) F2C(1)
|
|
|
|
-Wn Assume n characters/word (default 4) when initializing
|
|
numeric variables with character data.
|
|
|
|
-z Do not implicitly recognize DOUBLE COMPLEX.
|
|
|
|
-!bs Do not recognize backslash escapes (\", \', \0, \\, \b,
|
|
\f, \n, \r, \t, \v) in character strings.
|
|
|
|
-!c Inhibit C output, but produce -P output.
|
|
|
|
-!I Reject include statements.
|
|
|
|
-!it Don't infer types of untyped EXTERNAL procedures from
|
|
use as parameters to previously defined or prototyped
|
|
procedures.
|
|
|
|
-!P Do not attempt to infer ANSI or C++ prototypes from
|
|
usage.
|
|
|
|
The resulting C invokes the support routines of f77; object
|
|
code should be loaded by f77 or with ld(1) or cc(1) options
|
|
-lF77 -lI77 -lm. Calling conventions are those of f77: see
|
|
the reference below.
|
|
|
|
FILES
|
|
file.[fF]
|
|
input file
|
|
|
|
*.c output file
|
|
|
|
/usr/include/f2c.h
|
|
header file
|
|
|
|
/usr/lib/libF77.a
|
|
intrinsic function library
|
|
|
|
/usr/lib/libI77.a
|
|
Fortran I/O library
|
|
|
|
/lib/libc.a
|
|
C library, see section 3
|
|
|
|
SEE ALSO
|
|
S. I. Feldman and P. J. Weinberger, `A Portable Fortran 77
|
|
Compiler', UNIX Time Sharing System Programmer's Manual,
|
|
Tenth Edition, Volume 2, AT&T Bell Laboratories, 1990.
|
|
|
|
DIAGNOSTICS
|
|
The diagnostics produced by f2c are intended to be self-
|
|
explanatory.
|
|
|
|
BUGS
|
|
|
|
Page 3 Tenth Edition (printed 4/25/91)
|
|
|
|
F2C(1) F2C(1)
|
|
|
|
Floating-point constant expressions are simplified in the
|
|
floating-point arithmetic of the machine running f2c, so
|
|
they are typically accurate to at most 16 or 17 decimal
|
|
places.
|
|
Untypable EXTERNAL functions are declared int.
|
|
|
|
Page 4 Tenth Edition (printed 4/25/91)
|
|
|