|
|
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.