F77(1)
NAME
f77 − Fortran 77 compiler
SYNOPSIS
f77 [ option ] ... file ...
DESCRIPTION
F77 is the UNIX Fortran 77 compiler. It accepts several types of arguments:
Arguments whose names end with ’.f’ are taken to be Fortran 77 source programs; they are compiled, and each object program is left on the file in the current directory whose name is that of the source with ’.o’ substituted for ’.f’.
Arguments whose names end with ’.r’ or ’.e’ are taken to be Ratfor or EFL source programs, respectively; these are first transformed by the appropriate preprocessor, then compiled by f77.
In the same way, arguments whose names end with ’.c’ or ’.s’ are taken to be C or assembly source programs and are compiled or assembled, producing a ’.o’ file.
The following options have the same meaning as in cc(1). See ld(1) for load-time options.
−c Suppress loading and produce ’.o’ files for each source file.
−p Prepare object files for profiling, see prof(1).
−O Invoke an object-code optimizer.
−S Compile the named programs, and leave the assembler-language output on corresponding files suffixed ’.s’. (No ’.o’ is created.).
−f Use a floating point interpreter (for PDP11’s that lack 11/70-style floating point).
−o output
Name the final output file output instead of ’a.out’.
−V Produce code suitable for using in overlaid programs. This is a default flag.
−V7 Turn off the −V flag. This is provided for backwards compatibility with older versions of f77, but in general should not be used.
The following options are peculiar to f77.
−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 Make the default type of a variable ’undefined’ rather than using the default Fortran rules.
−C Compile code to check that subscripts are within declared array bounds.
−w Suppress all warning messages. If the option is ’−w66’, only Fortran 66 compatibility warnings are suppressed.
−F Apply EFL and Ratfor preprocessor to relevant files, put the result in the file with the suffix changed to ’.f’, but do not compile.
−m Apply the M4 preprocessor to each ’.r’ or ’.e’ file before transforming it with the Ratfor or EFL preprocessor.
−Ex
Use the string x as an EFL option in processing ’.e’ files.
−Rx Use the string x as a Ratfor option in processing ’.r’ files.
−N[qxscn]nnn
Make static tables in the compiler bigger. The compiler will complain if it overflows its tables and suggest you apply one or more of these flags. These flags have the following meanings:
q Maximum number of equivalenced variables. Default is 150.
x Maximum number of external names (common block names, subroutine and function names). Default is 200.
s Maximum number of statement numbers. Default is 201.
c Maximum depth of nesting for control statements (e.g. DO loops). Default is 20.
n Maximum number of identifiers. Default is 401.
Programs do not always require the full default space assigned to them. Accordingly, one of these default values may be reduced in order to accommodate an increased value for some other flag (see table below). In the case of much larger programs, static table space is at a premium. Therefore, experimentation with different values for these flags is sometimes required so that the compiler will not complain.
Storage costs associated with these optional flags are:
flag default value cost ea. default cost
---- ------------- -------- ------------
s 201 8 bytes 1608 bytes
q 150 12 bytes 1800 bytes
x 200 20 bytes 4000 bytes
c 20 18 bytes 360 bytes
n 401 4 bytes 1604 bytes
−T[12alFM]file
Use alternate programs for various passes of compilation.
1file Use file for the back end of the compiler, instead of /lib/c1.
2file Use file as the optimizer, instead of /lib/c2.
afile Use file as the assembler, instead of /bin/as.
lfile Use file as the loader, instead of /bin/ld.
Ffile Use file as the footname (startup code), instead of /lib/crt0.
Mfile Use file as the macro processor with the −m flag, instead of /usr/bin/m4.
Other arguments are taken to be either loader option arguments, or F77-compatible object programs, typically produced by an earlier run, or perhaps libraries of F77-compatible routines. These programs, together with the results of any compilations specified, are loaded (in the order given) to produce an executable program with name ´a.out’.
FILES
file.[fresc]input file
file.oobject file
a.outloaded output
/usr/lib/f77pass1compiler
/lib/c1pass 2
/lib/c2optional optimizer
/usr/lib/libF77.aintrinsic function library
/usr/lib/libI77.aFortran I/O library
/lib/libc.aC library, see section 3
SEE ALSO
S. I. Feldman, P. J. Weinberger, A Portable Fortran 77 Compiler
prof(1), cc(1), ld(1)
DIAGNOSTICS
The diagnostics produced by f77 itself are intended to be self-explanatory. Occasional messages may be produced by the loader.
RESTRICTIONS
The Fortran 66 subset of the language has been exercised extensively; the newer features have not.