F77(1) SysV F77(1)
NAME
f77 - Fortran 77 compiler
SYNOPSIS
f77 [ options ] files
DESCRIPTION
f77 is an interface to the preprocessors (cpp, ratfor, etc.), the Domain
FTN compiler, and the link editor (ld). It accepts several types of
arguments. It interprets arguments whose names end with .f as FORTRAN 77
source programs; they are compiled, and each object program is left in
the current directory in a file whose name is that of the source, with .o
substituted for .f.
Arguments whose names end with .F are also interpreted as FORTRAN 77
source programs; these are first processed by the C preprocessor before
being compiled by f77.
Arguments whose names end with .r are interpreted as Ratfor source
programs. These are first transformed by the appropriate preprocessor,
then compiled by f77.
Arguments whose names end with .c are interpreted as C source programs
and are compiled as such.
Arguments whose names end with .e or .s (EFL and assembly source
programs) are not supported.
You can typically improve the run-time performance of your program if you
compile it using the -A cpu,id option with a processor-specific id. Use
an argument appropriate to the CPU type of the machine(s) on which you
will run the executable file. For example, the -A cpu,mathchip option
generates optimal code for the DSP90, DN330, DN560, DN570, DN580, DN2500,
DN3000, DN3500, DN4000, and DN4500 processors, and for the HP Apollo
Series 400s and 400t. Use the cpuhelp utility to help you choose the -A
cpu argument best suited to your needs. For information about this
utility, type man cpuhelp.
OPTIONS
The following options have the same meaning as in cc(1) (see ld(1) for
link editor options):
-A cpu,id Generate code for a particular class of processor. The default
id is mathlib_sr10 if you are compiling for a MC680x0-based
workstation, and a88k if you are compiling for a Series 10000
workstation. Values for id are as follows:
mathlib_sr10
Code for workstations with an MC68020 or
MC68030 microprocessor and an MC68881 or
MC68882 floating-point coprocessor, or with
an MC68040 microprocessor
mathlib Code for MC68020-, MC68030-, and
MC68040-based workstations (425t, 433s).
Code compiled with this option runs only on
SR10.3. Use mathlib_sr10 if your code
must also run on SR10.0, SR10.1, or SR10.2.
mathchip Code for MC68020- or MC68030-based
3000 workstations with an MC6888x floating-point
580 coprocessor (400t, 400s, DN4500, DN4000,
570 DN3500, DN3000, DN2500, DN580, DN570,
560 DN560, DN330, DSP90). These seven
330 arguments are synonyms. Use the
90 mathchip argument; the other arguments
may become obsolete at a future release.
a88k Series 10000 code
FPA1 Code for DN3000, DN4000, or DN4500
workstations with an FPA1 floating-point
accelerator unit
FPX Code for DN5xx workstations with an FPX
floating-point accelerator unit
PEB Code for workstations (including DN100, DN320,
DN400, DN600) with a Performance Enhancement
Board
160 Code for a DSP160, DN460, or DN660 workstation.
460 These three arguments are synonyms.
660
any Series 10000 code, if you are compiling for a
Series 10000 workstation, or generic MC680x0
code, if you are compiling for a MC680x0-based
workstation
m68k Generic MC680x0-based code
-A nansi Passes to the C compiler a C source code file that does not
comply with ANSI rules. Same as /com/cc -nansi option.
-A run[type],type
Passes type information to the compiler and linker. See -A
sys[type] for the different type arguments.
-A sys[type],type
Define the target system type (type) for the compiled object;
type may be one of the following:
TYPE DESCRIPTION
any Version independent
bsd4.2 Berkeley version 4.2
bsd4.3 Berkeley version 4.3
sys5 UNIX System V
sys5.3 UNIX System V Release 3
-c Suppress link editing and produce .o files for each source
file.
-D name=def
-D name Define the name to the C preprocessor, as if by #define. If
you do not supply a definition, define name as 1 (.F suffix
files only). (cpp switch)
-o output Name the final output file output, instead of a.out.
-On Produce optimized code. n is a single-digit integer in the
range 1 - 4, indicating the level of optimization. If n is
omitted, 3 is the default. If you omit the -O option
altogether, no optimization is performed.
-g Generate additional information needed for the use of dbx(1).
-p Arrange for the compiler to produce code which counts the
number of times each routine is called. If loading takes
place, replace the standard startup routine by one which
automatically calls monitor(1) at the start and arranges to
write out a mon.out file at normal termination of execution of
the object program. An execution profile can then be generated
by use of prof(1).
-qg Produce profiled code that allows profiling with gprof(1).
Upon normal termination of execution of the object program, a
gmon.out file is produced.
-T1pathname
Substitute the compiler at pathname for the compiler that f77
calls by default.
-w Suppress all warning messages. (-w66 is not supported).
-Wc,arg1[,arg2...]
Hand off the arguments argN to pass c, where c is one of p, 0,
or l, indicating the preprocessor, compiler, or link editor,
respectively. You can use -W0 to access /com/ftn options that
are otherwise not available with the /bin/f77 command. For
example, -W0,-l,foo passes the option -l foo to the compiler.
You can use -Wp to access /bin/cpp options that are otherwise
not available with the /bin/f77 command. For example, -Wp,-C
passes the option -C to the C preprocessor. Note that no space
is permitted between the comma and the option name.
The following /com/ftn options can be used in this manner with
the -W0 option (default options are indicated by "(D)"):
-ac (D) Produce absolute code. The alternative option is
-pic, which forces the compiler to produce
position-independent code.
-alnchk Display messages about alignment of data.
Default for Series 10000 compilers.
-bounds_violation
Specify that the program can violate array
subscript boundaries during execution.
-no_bounds_violation (D)
Specify that the program does not access array
elements beyond the declared size of the array.
-cond Compile lines with D or d in column 1.
-ncond (D) Ignore lines with D or d in column 1.
-config var1...varN
Set conditional compilation variables to true.
-db (D) Generate minimal debugging information.
-dbs Generate full debugger preparation. Same as f77
-g option.
-dba Generate full debugger preparation, but do not
optimize code.
-ndb Do not generate any debugger preparation.
-dynm (D) Allocate local variables on the stack (dynamic
storage). Compare to -save option.
-exp Generate expanded code listing (implies -l).
-nexp (D) Suppress expanded code listing.
-ff Activate free format: length of source lines
may be up to 1024 characters; ampersand (&) in
column 1 specifies a continuation line.
-frnd Rounds floating-point numbers at key points
during program execution. Using this option may
result in a loss of performance.
-nfrnd (D) Optimizes execution by computing floating-point
expressions in greater precision than that
specified by the program, when the compiler
detects an opportunity to do so.
-indexl Disable some optimizations generated for
subscript calculations, and cause all array
indexing to use 4-byte integer arithmetic.
-nindexl (D) Use all the optimizations generated for
subscript calculations.
-info level Control the output of informational messages.
The five informational levels are 0, 1, 2
(default), 3, and 4.
-ninfo Suppress informational messages.
-inlib pathname
Load pathname (a PIC binary file) at run time
and resolve global variable references. Thus
you can use pathname as a library file for many
different programs.
-inline char Select char as an in-line comment designator.
(Default char is "{".)
-l [file] Generate compilation listing. If no pathname is
specified, the listing is written to a file with
the same name as the source file, but with the
suffix .lst.
-nl (D) Suppress compilation listing.
-l*1 Use logical*1 as the default logical type.
-l*2 Use logical*2 as the default logical type.
-l*4 (D) Use logical*4 as the default logical type.
-mp For use with the HP Concurrent FORTRAN (HPCF)
product to enable optimization of FORTRAN
programs for parallel execution on
multiprocessor Series 10000 workstations. For
more information, refer to the HP Concurrent
FORTRAN User's Guide.
-msgs (D) Generate final error and warning count message.
-nmsgs Suppress final error and warning count message.
-natural Make natural alignment the default for this
compilation.
-nnatural (D) Make word alignment the default for this
compilation.
-nclines Suppress generation of COFF line number tables.
Applies only to 680x0 target compilers.
-opt [n] Perform global optimization. n is a single-digit
integer in the range 0 to 4, indicating the
level of optimization performed. -opt 0 is
identical to the obsolete switch -nopt. If n is
omitted, 3 is the default level (same as f77
-O). Increasing the optimization level results
in faster execution of your program, at the
expense of longer compilation time. See the
Domain FORTRAN Language Reference manual for
details.
-overlap arguments
Specify the degree of the program's conformity
to ANSI FORTRAN storage association standard.
By default, the compiler conforms to the
standard. The default produces the most
optimized code.
The option takes one or more of the following
arguments:
no_dd (D)
Conforms to standard. No dummy argument
that is modified in its subprogram is
associated with another dummy argument to
the same subprogram.
exact_dd
If two dummy arguments overlap, they must
have the same address.
dd The program does not conform to the
standard for dummy-to-dummy associations.
no_dc (D)
Conforms to standard. No dummy argument
modified in its subprogram is associated
with a variable in a common block.
exact_dc
If a dummy argument is associated with a
variable in a common block, the address of
the actual parameter is identical to the
address of variable in the common block.
dc The program does not conform to the
standard for dummy-to-common associations.
-pic Produce position-independent object code. The
default is to produce absolute code.
-prasm (D) Use an alternate assembly-language format for
the expanded listing generated by -exp. This
option applies only if used with the -exp option
and with a compiler that generates Series 10000
code.
-nprasm Use 68000 assembly language format for the
expanded listing generated by -exp. This option
applies only if used with the -exp option and
with a compiler that generates Series 10000
code.
-save Allocate space for local variables in static
storage, rather than on the stack. Compare with
-dynm.
-type Issue warning messages for variables not
explicitly typed.
-ntype (D) Suppress checking for explicit declarations of
variables.
-xref Insert a symbol table map and cross reference in
the listing file. This generates the listing
file at program_name.lst, even if you omit -l.
-nxref (D) Suppress creation of symbol table map and
cross-reference listing.
-xrs (D) Save registers across a call to an external
subprogram.
-nxrs Do not assume that calls to external subprograms
have saved the registers.
-zero Initialize to zero all common blocks and
statically allocated variables.
-nzero (D) Do not initialize all common blocks and
statically allocated variables.
The following /bin/cpp options can be used with the -Wp option:
-C Prevents the preprocessor from stripping C-style
comments.
-H Print out to stderr the pathname of every file
included during this compilation. You must use
the C preprocessor directive #include.
-I dir Change the search path for #include files with
names not beginning with a slash (/). Look first
in the directory of the source file in which the
#include directive occurs; then in directories
named in this option; and finally, in
directories on a standard list. (.F suffix files
only.)
-U name Remove any initial definition of name.
The following options are peculiar to f77:
-C Generates code for run-time subscript range checking.
-I[2 | 4] Changes the default size of integer variables (only valid on
machines where the "normal" integer size is not equal to the
size of a single precision real). -I2 causes all integers to
be 2-byte quantities. The default, -I4, causes all integers to
be 4-byte quantities. (The -Is option is not supported.)
-F Applies the Ratfor preprocessor to relevant files, puts the
result in files whose names have their suffix changed to .f.
(No .o files are created.)
-m Applies the M4 preprocessor to each Ratfor source file before
transforming it with the ratfor(1) processor.
-Rx The string x is used as a Ratfor flag argument whenever
processing a .r file.
-v Prints the version number of the compiler, and the name of each
pass as it executes.
The following options are not supported in f77: -S, -f, -p, -onetrip,
-1, -w66, -U, -u, and -E.
Other arguments are taken to be either link-editor option arguments,
f77-compatible object programs, or libraries of f77-compatible routines.
These programs, together with the results of any compilations specified,
are linked (in the order given) to produce an executable program with the
default name a.out.
FILES
file.[frc] Input file
file.o Object file
a.out Linked output
/usr/lib/libF77.a Intrinsic function library
/usr/lib/libI77.a Fortran I/O library
/usr/apollo/lib/ftn Compiler
The following files are not supported:
./fort[pid].? Temporary
/usr/lib/f77pass1 Compiler
/usr/lib/f77pass2 Pass 2
/lib/c2 Optional optimizer
NOTES
After processing .F files, the C preprocessor leaves the resulting file
in the current directory, in a file whose name is that of the source,
with .f substituted for .F. If there is a previously existing .f file of
the same name, it will be overwritten.
DIAGNOSTICS
The diagnostics produced by f77 itself are intended to be self-
explanatory. Occasional messages may be produced by the link editor,
ld(1).
SEE ALSO
asa(1), cc(1), fsplit(1), ld(1), m4(1), prof(1), ratfor(1), dbx(1).
Domain FORTRAN Language Reference