---
name: "fc"
section: "1"
platform: "linux"
package: "f2c"
version: "20240504-1"
release: "Debian 13 (Trixie)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/fc"
---

# fc(1)

frontend script to the f2c fortran compiler

## NAME

fc - frontend script to the f2c fortran compiler

## SYNOPSIS

**/usr/bin/fc** \[**-o** *objfile*\] \[**-c**\] \[**-S**\] \[**-C**\] \[**-u**\] \[**-w**\] \[**-w66**\] \[**-D** *switch*\] \[**-I** *includepath*\] \[**-Ntnnn**\] \[**-P**\] *files* \[**-l** *library*\]

## DESCRIPTION

**fc** is a script intended to be used as a front end to the  **f2c** FORTRAN-to-C translator. It is supposed to make the whole  **f2c** and C compiler setup look like a real Fortran compiler.

File arguments with a  **.f** suffix are compiled as Fortran source. Files with a  **.F** suffix are passed through the C preprocessor **[cpp(1)](/cpp/1.md)** first. Files with  **.c** (C source) or  **.s** (assembly source) suffixes are passed to the C compiler directly. Files with a  **.e** suffix are treated as efl source files, and files with a **.r** suffix are treated as RATFOR source files.

## OPTIONS

- *-o objfile*

  Produce an output executable named *objfile* rather than using the default name a.out.

- *-c*

  Do not call the linker; instead, leave relocatable object files as \*.o.

- *-S*

  Produce assembly output as file.s

- *-C*

  Compile in extra code to check that array subscripts are in bounds.

- *-l library*

  Libraries specified with this option are passed to the linker.

- *-U def*

  Definitions specified with this option are passed to C compiler (for .c files) or to cpp (for .F files) to remove definition.

- *-u*

  Complain about undeclared variables.

- *-v, --version*

  Print version of f2c in use

- *-w*

  Omit all warning messages.

- *-w66*

  Omit Fortran 66 (Fortran IV) compatibility warning messages.

- *-D switch*

  The given switch is passed to the C compiler (for .c files), to cpp  (for .F files) and to f2c.

- *-I includepath*

  Passed to the C compiler (for .c files), to cpp (for .F files) and to f2c.

- *-Ntnnn*

  Allow nnn entries in table t.

- *-P*

  Emit .P files.

## BUGS

**fc** isn't really very good -- try fort77 (1), which does a better job.\
 This manual page isn't really very good either...

## AUTHOR

S. Feldman, D. Gay, M. Maimone, N, Schryer are all mentioned in the paper on the conversion of Fortran to C.\
 Peter Maydell (pmaydell@chiark.greenend.org.uk) wrote this manual page, and Alan Bain (alanb@chiark.greenend.org.uk) made some minor modifications.

## SEE ALSO

[**f2c**(1)](/f2c/1.md), [**fort77**(1)](/fort77/1.md), [**cc**(1)](/cc/1.md), [**cpp**(1)](/cpp/1.md), [**ratfor**(1)](/ratfor/1.md)
