f2c (1) Linux Manual Page
NAME
f2c – Convert Fortran 77 to C or C++
SYNOPSIS
f2c [ option … ] file …
DESCRIPTION
F2c converts Fortran 77 source code in files with names ending in or to C (or C++) source files in the current directory, with substituted for the final 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 or 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 confirms the default rendering of INTEGER as long int.
-Idir- Look for a non-absolute include file first in the directory of the current input file, then in directories specified by -I options (one directory per option). Options -I2 and -I4 have precedence, so, e.g., a directory named 2 should be specified by -I./2 .
-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, or, if the option is `-w66′, just Fortran 66 compatibility warnings.
The following options are peculiar to f2c.
-A- Produce ANSI C (default, starting 20020621). For old-style C, use option -K.
-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.
-cd- Do not recognize cdabs, cdcos, cdexp, cdlog, cdsin, and cdsqrt as synonyms for the double complex intrinsics zabs, zcos, zexp, zlog, zsin, and zsqrt, respectively, nor dreal as a synonym for dble.
-ddir- Write files in directory dir instead of the current directory.
-E- Declare uninitialized COMMON to be
Extern(overridably defined in asextern). -ec- Place uninitialized COMMON blocks in separate files:
COMMON /ABC/appears in fileabc_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.
-f- Assume free-format input: accept text after column 72 and do not pad fixed-format lines shorter than 72 characters with blanks.
-72- Treat text appearing after column 72 as an error.
-g- Include original Fortran line numbers in #line lines.
-h- Emulate Fortran 66’s treatment of Hollerith: 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 variables may be assigned by INQUIRE and array lengths are stored in short ints. -i90- Do not recognize the Fortran 90 bit-manipulation intrinsics btest, iand, ibclr, ibits, ibset, ieor, ior, ishft, and ishftc.
-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
.Pof ANSI (or C++) prototypes for definitions in each input file.for file.F. When reading Fortran from standard input, write prototypes at the beginning of standard output. Option-Psimplies-Pand gives exit status 4 if rerunning f2c may change prototypes 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 confirms the default, which imitates f77.
-r- Cast REAL arguments of intrinsic functions and values of REAL functions (including intrinsics) to REAL.
-r8- Promote REAL to DOUBLE PRECISION, COMPLEX to DOUBLE COMPLEX.
-s- Preserve multidimensional subscripts. Suppressed by option .
-Tdir- Put temporary files in directory dir.
-trapuv- Dynamically initialize local variables, except those appearing in SAVE or DATA statements, with values that may help find references to uninitialized variables. For example, with IEEE arithmetic, initialize local floating-point variables to signaling NaNs.
-w8- Suppress warnings when COMMON or EQUIVALENCE forces odd-word alignment of doubles.
-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 (\", \’,
