F77(1)
NAME
f77 - FORTRAN compiler
SYNOPSIS
f77
[ -66 ]
[ -a ]
[ -align _block _ ]
[ -ansi ]
[ -bsdmalloc ]
[ -B[dynamic,static] ]
[ -c ]
[ -C ]
[ -cg[87,89,92] ]
[ -dalign ]
[ -dryrun ]
[ -d[y,n] ]
[ -Dname[=def ] ]
[ -e ]
[ -f ]
[ -fast ]
[ -fnonstd ]
[ -F ]
[ -g ]
[ -G ]
[ -h ]
[ -help ]
[ -i2 ]
[ -i4 ]
[ -Ipath ]
[ -libmil ]
[ -Ldir ]
[ -misalign ]
[ -native ]
[ -nolib ]
[ -nolibmil ]
[ -noqueue ]
[ -N[cdlnqsx] nnn ]
[ -o output ]
[ -oldldo ]
[ -oldstruct ]
[ -onetrip ]
[ -O[1234] ]
[ -p ]
[ -pg ]
[ -pic ]
[ -PIC ]
[ -Qoption prog opt ]
[ -Qpath pathname ]
[ -Qproduce sourcetype ]
[ -r4 ]
[ -r8 ]
[ -R path ]
[ -sb ]
[ -sbfast ]
[ -silent ]
[ -S ]
[ -temp=dir ]
[ -time ]
[ -u ]
[ -U ]
[ -v ]
[ -V ]
[ -w66 ]
[ -w ]
[ -xF ]
[ -xlicinfo ]
[ -xl[d] ]
[ -xs ]
[ -Xlist ]
source file(s) ...
[ -lx ]
DESCRIPTION
Example: Compile the
any.f
source file with the option for debugging.
Purpose:
f77
is SPARCompiler
FORTRAN
from SunPro. This is release 2.0.1, which runs in the
Solaris 2.0 (uses SunOS 5.0) and Solaris 1.x (uses
SunOS 4.1.x) operating environments.
f77
translates from programs written in
f77
source code to executable load modules,
or to relocatable binaries for linking by
ld
(1),
or to dynamic shared libraries.
f77
is a superset of
FORTRAN
77, with many extensions, including compatibility with
VMS FORTRAN .
File Suffixes
.f
and
.for
:
Files with names ending in
.f
or
.for
are taken to be
f77
source files; they are compiled, and each
object program is put in the current
directory in a file with the same name
as the source, with
.o
substituted for the
.f
or
.for
.
.F
:
Files with names ending in
.F
are also taken to be
f77
source files, but they are preprocessed by the C preprocessor
(equivalent to a
/lib/cpp
command) before they are compiled by the
f77
compiler.
.s
:
Files with names ending in
.s
are taken to be assembly source files and are assembled,
producing
.o
files.
.il
:
Files with names ending in
.il
are taken to be in-line expansion code template files.
The compiler uses these to expand in-line calls to
selected routines when the
-O
option is in effect.
It's the compiler, not the linker, that does this,
so if you want in-line expansion,
be sure to include these
.il
files in the compile command.
You do not need to specify the complete path name of the
supplied math library in-line templates (the
libm.il
files) if you use the
-fast
option.
If you want to use your own
.il
files, then you must specify their complete path on the
compile line.
OPTIONS
See
ld
(1)
for link-time options.
-66
Report non-FORTRAN 66 constructs as errors.
This option may be deleted in a future release.
-a
Insert code to count how many times each basic block is
executed.
-a
invokes a runtime recorder that creates a
.d
file for each
.f
file (at normal termination).
The
.d
file accumulates execution data for the corresponding
source file. You can then run
tcov
(1)
on the source file to generate statistics about
the program. For separate compile and link steps,
if you compile with
-a
,
be sure to link with
-a
.
You can mix
-a
with
-O
;
in some earlier versions,
-a
overrode
-O
.
-align _
block
_
SunOS 5.0
:
This option is provided for compatibility with older releases.
It is recognized, so it does not break
make
files. It does
nothing .
SunOS 4.1.x
:
Cause the common block whose
FORTRAN
name is
block
to be page-aligned:
its size is increased to a whole number of pages, and
its first byte is placed at the beginning of a page.
For example, the command
f77 -align _BUFFO_ growth.f
causes
BUFFO
to be page-aligned.
This option applies to
uninitialized
data only: if any variable of the common block is
initialized in a
DATA
statement, then the block will not be aligned.
This option is passed to
ld
and is not used by
f77
.
-ansi
Identify many non-ANSI extensions.
-bsdmalloc
SunOS 4.1.x only
:
Faster
malloc.
Use the faster
malloc
from the the library
libbsdmalloc.a
.
This
malloc
is faster but less memory efficient.
This option causes the flags
-u _malloc /lib/libbsdmalloc.a
to be passed to the linker.
-B[dynamic,static]
Use
dynamic
or
static
binding.
The default is
dynamic .
A linker option.
-
-Bdynamic
Dynamic
binding, that is, shared libraries.
-
-Bstatic
Static
binding, that is, nonshared libraries.
-c
Compile only; suppress linking by
the loader,
ld
(1),
and produce a
.o
file for each source file.
You can name a single object file explicitly using the
-o
option.
-C
Compile code to check that subscripts are within
the declared array bounds.
This helps catch some causes of the dread segmentation fault.
-cg[87,89,92]
Code generation for floating-point hardware.
Generate code for Sun-4 systems released in one of the
years 1987, 1989, or 1992, and later.
Use the
fpversion
(1)
command to tell you which floating-point hardware you
have and which floating-point option to use.
It may take about a minute to display its report.
If you compile any procedure of a program or library
with one of the options
-cg87
,
-cg89
,
or
-cg92
,
then you must compile all procedures of the program or
library with the same option.
-
-cg87
Generate code that runs on both the older Sun-4 systems
(Sun-4/1xx or Sun-4/2xx) and newer Sun-4 systems. This
option directs the code generator to produce instruction
scheduling to exploit features available on Sun-4 systems
released in 1987 or later. It also uses the appropriate
in-line templates. It does
not
exploit features such as the
fsqrts
and
fsqrtd
instructions that are implemented in hardware on only
the newer Sun-4 systems. The
-cg87
option is the default under SunOS 4.1.x.
-
-cg89
Generate code that exploits features like the hardware
fsqrts
and
fsqrtd
instructions
(SPARC computers released in 1989 or later).
The
-cg89
option is the default under SunOS 5.0.
-
-cg92
Generate code that exploits features available on
computers implementing Version 8 of the SPARC Instruction
Set Architecture (SPARC computers released in 1992 or later).
An example of these new computers is the SPARCstation-10
series.
The
-cg92
option directs the code generator to produce instruction
scheduling, special instructions, and appropriate in-line
templates. Examples of special instructions are the hardware
integer multiply and divide instructions and the
floating-point multiply single to double instruction.
If you specify optimization at any level, directly or
indirectly, then the built-in assembler pass will perform
SuperSPARC-specific instruction scheduling automatically.
That is, you get this if you use any of
-O
,
-O1
,
-O2
,
-O3
,
or
-O4
.
You also get it if you use
-fast
or
-native
with other options in such a way that you get
-cg92
.
Code compiled with
-cg92
will run on
-cg89
hardware, but in some cases will be
much slower
than if it is compiled with
-cg89
.
-dalign
Generate double load/store instructions wherever possible
for faster execution.
Using this option automatically triggers the
-f
option, which causes all double-precision and
quadruple-precision data types (both real and complex) to be
double aligned. With
-dalign ,
you may not get
ANSI
standard
FORTRAN
alignment - a tradeoff of portability for speed.
See also Shared Libraries in
Programming Utilities and Libraries .
If you compile one module with
-dalign
,
compile all modules of the program with
-dalign
.
-dalign
is unsuitable for modules that access double-precision
data that is not aligned on 8-byte boundaries;
unexpected bus errors may occur.
-dryrun
Show but do not execute commands constructed
by compiler.
-d[y,n]
SunOS 5.0 only
.
Do
dynamic
or
static
binding.
Default is
dynamic .
This is a linker option.
-dy:
ld
uses
dynamic
binding, that is, shared libraries.
-dn:
ld
uses
static
binding, that is, nonshared libraries.
-Dname[=def ]
Define a symbol
name
to the
C
preprocessor,
cpp
(1).
Equivalent to a
#define
directive in the source. If no
def
is given,
name
is defined as 1 (
.F
suffix files only).
-e
Accept extended source lines, up to 132 characters long.
-f
Align all common blocks and all double-precision and
quadruple-precision local data on 8-byte boundaries.
This applies to both real and complex data.
Resulting code may not be standard and may not be
portable.
If you compile one module with
-f
,
compile all modules of the program with
-f
.
-fast
Select the combination of compilation options
that optimizes for speed of execution
without excessive compilation time.
This should provide close to the maximum performance
for most realistic applications.
For some critical routines it may be better to try
for more optimization with the -fast -O4
combination.
If you combine
-fast
with other options, the last specification applies.
Although the optimization part
of -fast is -O3,
the optimization part of -fast -O4 is -O4.
If you do not specify the level (as in
-fast -O
)
you get
-fast -O3
.
For separate compile and link steps: if you compile with
-fast
,
then be sure to link with
-fast
.
It is a convenience option, and it chooses
the fastest code generation option available on the
compile-time hardware (
-cg87
,
-cg89
,
-cg92
)
an optimization level (
-O3
),
a set of in-line expansion templates,
the
-fnonstd
floating-point option, and
the
-dalign
option.
For detail on the constituent options of
-fast ,
see the
FORTRAN User's Guide .
Do not use this option for programs that depend on
IEEE
standard exception handling; you can get
different numerical results, premature program termination,
or unexpected
SIGFPE
signals.
-fnonstd
Do nonstandard initialization of floating-point
arithmetic hardware. By default,
IEEE
754 floating-point arithmetic is nonstop
and underflows are gradual.
Specifying
-fnonstd
during the link step is like having
the following at the start of a main program.
call nonstandard_arithmetic()
i = ieee_handler ("set", "common", SIGFPE_ABORT )
The
nonstandard_arithmetic()
makes underflows always produce zero rather than a
possibly subnormal number, as the
IEEE
standard requires.
This may be faster. See
ieee_functions
(3m).
-
The
-fnonstd
option enables hardware traps for floating-point
overflow, division by zero, and invalid
operation exceptions. These are converted
into SIGFPE signals, and if the program has no
SIGFPE handler,
it aborts. See
ieee_handler
(3m).
-
-F
Apply the C preprocessor to files with the
.F
suffix and put the result in the file with the suffix
changed to
.f
,
but do not compile.
-
-g
Produce additional symbol table information for
dbx
(1)
or
debugger
(1)
.
For separate compile and link steps:
if you compile with
-g ,
then be sure to link with
-g .
The
-g
no longer overrides
-O
,
but it does override the automatic inlining usually provided
by
-O4
.
-
-G
SunOS 5.0 only
:
Build a shared library.
Tell the linker this is for a shared dynamic library.
-
-h
name
SunOS 5.0 only
:
Name a Shared Dynamic Library.
The
-h
name
option assigns a name to a shared dynamic library.
This provides a way to have versions of a shared
dynamic library. In general, the name after
-h
should be exactly what you have after the
-o.
The space between the
-h
and
name
is optional. This is a loader option.
The compile-time loader assigns the specified name
to the shared dynamic library being created, and it
records the name in the library file as the
intrinsic name of the library. If there is no
-hname
option, then no intrinsic name is recorded in the
library file.
Every executable file has a list of needed shared
library files. When the run-time linker links the
library into an executable file, the linker copies the
intrinsic name from the library into that list of
needed shared library files. If there is no intrinsic
name of a shared library, then the linker copies the
path of the shared library file instead.
-
-help
Display an equivalent of this list of options.
-
-i2
Make 2 be the default size in bytes of integer and
logical constants and variables.
But for
INTEGER*
n
Y,
the
Y
uses
n
bytes, regardless of
-i2
-
-i4
Make 4 be the default size in bytes of integer and
logical constants and variables.
But for
INTEGER*
n
Y,
the
Y
uses
n
bytes, regardless of the
-i4
option.
-
-I
path
Insert
path
at the beginning of the list of directories in which to
search for #include files.
Example: f77 -I/usr/applib growth.f
searches for #include files in
/usr/applib
.
This path and directory list is for #include
files with
relative
path names, not absolute path names.
This option applies only to source files with a
.F
suffix.
Note that this does not affect the FORTRAN
INCLUDE
statement, only the C preprocessor
#include
directive.
Search order for the
#include
files:
1. The directory containing the source file
2. Directories named in
-I
options
3. Directories in the default list.
The default list for the
-I
path
option:
SunOS 5.0
If you installed in the standard location, the list is:
/opt/SUNWspro/SC2.0.1/include/f77 /usr/include
If you installed in
/my/dir/
,
the list is:
/my/dir/SUNWspro/SC2.0.1/include/f77 /usr/include
SunOS 4.1.x
If you installed in the standard location, the list is:
/usr/lang/SC2.0.1/include/f77 /usr/include
If installed in
/my/dir/
,
the list is:
/my/dir/SC2.0.1/include/f77 /usr/include
-
-libmil
Select the best in-line templates for the floating-point
option and operating system release available
on this system.
-
-l
x
Link with library
lib
x.a.
Direct the loader to link with object library
lib
x.a,
where
x
is a string.
Examples:
-lm
links in math library
libm.a;
-lV77
links in the
library
libV77.a.
The library
libm.a
has a lot of the
IEEE
math routines; this gives optimum performance for most
programs, but is application dependent.
Library
libV77.a
has
VMS
routines in conflict with Sun routines.
See
ld
(1).
Order on the Command Line
:
Place
-l
x
options
after
any
.f,
.F,
or
.o
files.
If you call functions in
liby
,
and they reference functions in
libx
,
then place
libx
after
liby
.
Search Order :
The loader
ld
searches paths for the libraries specified by the
-l
x
option in the following order:
SunOS 5.0
:
1. /opt/SUNWspro/lib/
2. /opt/SUNWspro/SC2.0.1/
3. /usr/ccs/lib/
4. /usr/lib/
SunOS 4.1.X
:
1. /usr/lang/SC2.0.1/
2. /usr/lib/
Shared Libraries Location :
For SunOS 5.0, the shared libraries provided by SunPro are
located in the
/opt/SUNWspro/lib/
directory.
For SunOS 4.1.x they are in the
/usr/lang/2.0.1/
directory.
-
-L
dir
Add
dir
to list of directories for library
routines (linking using
ld
(1))
.
Do not use the
-L
dir
option to specify
/usr/lib
or
/usr/ccs/lib
,
since they are searched by default, and including them
here prevents using the unbundled
libm
.
-
-misalign
Allow for misaligned data in memory. Use this option
only
if you get a warning that
COMMON
or
EQUIVALENCE
statements cause data to be misaligned.
SLOW
:
With
-misalign
,
f77
generates much
slower
code for references to dummy arguments. If you can,
you should recode the indicated section instead of
recompiling with this option.
Example:
INTEGER*2 I(4)
REAL R1, R2
EQUIVALENCE (R1, I(1)), (R2, I(2))
END
The above program shows the following error message.
"misalign.f", line 4: Error: bad alignment for "r2"
forced by equivalence
For separate compile and link steps: if you compile with
-misalign
,
then be sure to link with
-misalign
.
-
-native
Generate code for the best
floating-point hardware available
on the machine you are using to compile.
-
-nolib
Do
not
automatically link with
any
system or language library; that is do
not
pass any
-l
x
options on to
ld
.
The default is to link such libraries into the executables
automatically, without the user specifying them on the
command line.
The system and language libraries are
required
for final execution. It is the users responsibility to link
them in manually. This provides complete control (and
with control comes responsibility) for the user.
The
-nolib
option makes it easier to link one of these libraries
statically
.
For example, an application linked dynamically with
libF77
fails on a machine that has no
libF77
.
You can avoid such failure by shipping
libF77
to your customer, or by linking it statically.
Example: Link
libF77
statically
and link
libc
dynamically
.
f77 -nolib any.f -Bstatic -lF77 -Bdynamic -lm -lc
There is no dynamic
libm
;
it is always linked statically.
Order for
-l
x
options is important. Use the order shown in the example.
-
-nolibmil
Reset
-fast
so that it does
not
include in-line templates. Use this
after
the
-fast
option:
f77 -fast -nolibmil ...
-
-noqueue
No license queue. When you use this option, if no
license is available, the compiler returns without
queuing your request and without doing your compile.
A nonzero status is returned for testing in
make
files.
-
-N[cdlnqsx]
nnn
Make static tables in the compiler bigger.
f77
complains if tables overflow and suggests you
apply one or more of these flags. These flags
have the following meanings:
-
-Nc
Maximum depth of nesting for control statements
(for example,
DO
loops).
The default is 25.
-
-Nd
Maximum depth of nesting for data structures and unions.
The default is 20.
-
-Nl
Maximum number of continuation lines for a continued
statement. The default is 19 (1 initial and 19 continuation).
-
-Nn
Maximum number of identifiers. The default is 2039.
-
-Nq
Maximum number of equivalenced variables. The default is 500.
-
-Ns
Maximum number of statement numbers. The default is 2000.
-
-Nx
Maximum number of external names (common block names, subroutine and
function names). The default is 1000.
-
-o
output
Name the final output file
output
instead of
a.out
.
-
-oldldo
Old list-directed output.
Omit the blank that starts each record for
list-directed output.
This is a change from some previous releases.
The default behavior is to provide that blank,
since the
FORTRAN
Standard requires it.
This is a compile option; that is, each
.o
file could have
its own
-oldldo
option.
See also the
FORM='PRINT'
option of
OPEN.
-
-oldstruct
Align structures as in prior releases.
Use this to read unformatted files
created with older versions of f77, which is
different from either the default way or the VMS way.
If you use both
-oldstruct
and
-xl,
then you get
-oldstruct.
-
-onetrip
Compile
DO
loops so they are performed at least once if
reached.
f77
FORTRAN
DO
loops are usually not performed at all if the
upper limit is smaller than the lower limit, unlike
some
FORTRAN
66 implementations of
DO
loops.
-
-O[1234]
Optimize the object code. The
-g
option no longer suppresses
-O
n.
-
-O
Optimize at the level most likely to
give close to the maximum performance
for most realistic applications.
(currently
-O3)
-
-O1
Do only the minimum amount of optimization (peephole).
This is postpass assembly-level optimization.
-
-O2
Do basic local and global optimization.
This level usually gives minimum code size.
The details are:
induction variable elimination,
local and global common subexpression elimination,
algebraic simplification,
copy propagation,
constant propagation,
loop-invariant optimization,
register allocation,
basic block merging,
tail recursion elimination,
dead code elimination,
tail call elimination,
and
complex expression expansion.
Do not use
-O2
unless
-O3
results in excessive compilation time,
running out of swap space,
or
excessively large code size.
-
-O3
Besides what
-O2
does, this
optimizes references and definitions of external variables.
-
-O4
Besides what
-O3
does, this does automatic inlining of functions
in the same file. Code usually runs faster,
but for some codes,
-O4
make them run slower.
-g
suppresses automatic inlining.
In general,
-O4
results in larger code.
-
-p
Prepare the object files for profiling with
prof
(1).
This makes profiles by procedure,
showing the number of calls to each procedure and the
percent of time used by each procedure.
For separate compile and link steps,
if you compile with
-p
,
then be sure to link with
-p
.
-
-pg
Prepare the object files for profiling with
gprof
(1).
This makes profiles by procedure,
showing the number of calls to each procedure and the
percent of time used by each procedure.
This produces counting code in the manner of
-p
,
but invokes a runtime recording mechanism that keeps
more extensive statistics and produces a
gmon.out
file at normal termination.
You can then generate an execution profile using
gprof
(1).
For separate compile and link steps,
if you compile with
-pg
,
then be sure to link with
-pg
.
-
-pic
Produce position-independent code.
Each reference to a global datum is generated as a
dereference of a pointer in the global offset table.
Each function call is generated in pc-relative
addressing mode through a procedure linkage table.
The size of the global offset table is limited to 8K on
SPARC
processors.
For any one program, use all
-pic
or all
-PIC
.
-
-PIC
Similar to
-pic
,
but allows the global offset table to span the range
of 32-bit addresses.
Use it for those rare cases with too many global data
objects for
-pic
.
For any one program, use all
-pic
or all
-PIC
.
-
-pipe
This is for compatibility with older versions.
This is recognized so as to not break any
make
file, but it does not do anything.
-
-Qoption
prog opt
Pass option
opt
to program
prog.
The
opt
must be appropriate to
prog
and may begin with a minus sign.
prog
can be
as
,
fbe
,
cg
,
cpp
,
f77pass1
,
iropt
,
inline
,
ld
,
or
ratfor
.
For
SunOS 5.0
,
the assembler is
fbe
.
For
SunOS 4.1.x
,
it is
as
.
Example: Load Map (SunOS 5.0).
f77 -Qoption ld -m any.f
Example: Load Map (SunOS 4.1.x).
f77 -Qoption ld -M any.f
-
-Qpath
pathname
Insert directory
pathname
into the compilation search path (to use alternate
versions of programs invoked during compilation).
This path will also be searched first for certain
relocatable object files that are implicitly
referenced by the compiler driver (such files
as
*crt*.o
and
bb_link.o
).
-
-Qproduce
sourcetype
Produce source code of the type
sourcetype,
where
sourcetype
can be one of:
-
.o
Object file from
as
(1).
-
.s
Assembler source (from
f77pass1
,
inline
,
or
cg
).
-
-r4
Treat
DOUBLE PRECISION
as
REAL
,
and treat
DOUBLE COMPLEX
as
COMPLEX
.
Adjusts declared variables.
Note that
REAL*
n
uses
n
bytes, regardless.
This option may be deleted in a future release.
-
-r8
Treat
REAL
as
DOUBLE PRECISION
.
Adjusts declared variables, literal constants, and
intrinsic functions.
Sets the default size for
REAL,
INTEGER,
and
LOGICAL
to 8,
for
COMPLEX
and
DOUBLE PRECISION
to 16,
and
for
DOUBLE COMPLEX
to 32.
If you specify the size, then the default size is not used. For
example, with REAL*n R,
INTEGER*n I,
and COMPLEX*n Z,
the sizes of
R,
I,
and
Z
are not affected by
-r8
.
Intrinsic functions are interpreted accordingly.
For example:
SQRT
is treated as
DSQRT
.
If you select both
-r8
and
-i2
,
then results are unpredictable.
-
-R
path
SunOS 5.0 only
:
Library paths.
Store
path
in the output object file and pass
path
to the run-time linker,
ld
(1).
path
is a colon-separated list of directories used to specify
library search directories to the run-time linker.
If both
LD_RUN_PATH
and the
-R
option are specified, the libraries in the
-R
list are scanned first. Use this if you want to
ship an executable that your users can run without
any special option for paths to your dynamic libraries.
-
-s
Strip the executable file of its symbol table.
-
-sb
SourceBrowser-
Produce table information for the SourceBrowser.
-
-sbfast
Produce only table information for the SourceBrowser and stop.
Do not assemble, link, etc. Do not make object files.
-
-silent
Prompt only. While compiling, if there are no warnings or errors,
then display only the prompt.
The default is to display the entry names and the file names.
-
-S
Assembly Source. Compile the named programs and leave the
assembly language output on corresponding files suffixed
.s
(no
.o
file is created).
-
-temp=
dir
Set directory for temporary files to be
dir.
-
-time
Report execution times for the various compilation
passes.
-
-u
Make the default type of variables
undefined
rather than using
FORTRAN
implicit typing.
This does
not
override any
IMPLICIT
statements
or explicit
type
statements.
-
-U
Do not convert upper-case
letters to lower-case,
but leave them in the original case.
The default is to convert upper-case letters to
lower-case, except within character-string constants.
-
-v
Print the name of each pass as the compiler
executes.
-
-V
Print the name and version
ID
of each pass as the compiler executes.
-
-w66
Suppress only messages generated by programs using
obsolete
FORTRAN
66 features.
This option may be deleted in a future release.
-
-w
Suppress warning messages.
Warnings are still issued if a user-specified option
overrides all or part of another user-specified option.
-
-xF
SunOS 5.0 only
:
Function-level reordering.
Enable performance analysis of the executable using the
SPARCworks Analyzer and Debugger (see
analyzer
(1)
and
debugger
(1)
man
pages).
This option also causes the assembler to generate some
debugging information (in the object file) necessary for
data collection.
Generate code that can be reordered at the
function level. This places each function from the file and
into a separate section.
Example: Functions
fcn1()
and
fcn2()
are placed in the sections
.text%fcn1
and
.text%fcn2
.
You can control the order of functions in the final
executable by using this
-xF
option and the loader
-Mmapfile
option.
Within the map file, if you include the flag
O
(that's an oh, for order, not a zero) in the string of
segment flags, then the static linker
ld
will attempt to place sections in the order they appear
in the map file.
See
Linker and Libraries Manual SunOS 5.0
for more on this option, segment flags, and
map files.
-
-xlicinfo
License information. Returns license information about
the licensing system. In particular, it returns the
name of the license server and the user IDs of users who
have licenses checked out. When you give this option,
the compiler is not invoked and a license is not
checked out.
-
-xl
[
d
]
Extended Language.
You get most of the VMS FORTRAN
features automatically, with no special option needed.
But where source code could be either
VMS FORTRAN
or
SPARCompiler
FORTRAN,
the
-xl
makes the compiler interpret it as
VMS FORTRAN.
These
-xl
features are:
Unformatted record size in bytes,
VMS-style logical file names,
Quote (") character introducing octal constants,
Backslash (\) character within character
constants,
A nonstandard form of the
PARAMETER
statement,
Alignment of structures as in VMS FORTRAN.
-
-xld
Besides what
-xl
does, this allows debugging statements. If there is a
D
or
d
in column one, then
-xld
causes them to be compiled; otherwise, they're treated
as comments.
-
-xs
SunOS 5.0 only
:
Symbol Tables for
dbx.
Revert to the old way of implementing symbol
tables. For this older way, if you move the
executables, you must also move the source files,
but you do not need to move the object files. Also, the
loader links more slowly and dbx initializes more slowly.
For comparison, with the newer way, which is now the
default, the loader links faster and
dbx
initializes faster. If you move the executables,
you must move both the source files and the
object (
.o
) files.
This option passes the
-s
option to the assembler, which does
the above action.
-
-Xlist
Cross-Reference. Make a cross-reference and
line-numbered listing of the source files.
The cross-reference shows the file name, subprogram
name, and line number where each identifier is declared,
set, and referenced.
Output is to a file with a name like the first file name
but with
a
.lst
extension.
For example,
f77 -Xlist file1.f file2.f file3.f
puts the cross-reference listing onto the file
file1.lst
.
Other arguments are taken to be either linker option
arguments, or names of
f77
-compatible
object programs, typically produced by an earlier run, or
libraries of routines that are
f77
-compatible.
These programs, together with the results of
any compilations specified, are linked (in the order
given) to produce an executable program in the file
specified by the
-o
option, or in a file named
a.out
if the
-o
option is not specified.
ENVIRONMENT
PATH
Before you use the
f77
command,
change your search path.
For
csh ,
this is usually done in the
.cshrc
file, with
set PATH =
at the beginning of a line.
The path is different for SunOS 5.0 and SunOS 4.1.x.
SunOS 5.0
:
If you installed into the standard, default directory,
then insert
/opt/SUNWspro/bin
at the
beginning
of your search path.
If you installed into a nondefault directory
such as /your/dir, then insert
/your/dir/SUNWspro/bin at the
at the beginning of your search path.
SunOS 4.1.X
:
If you installed into the standard, default directory,
then insert
/usr/lang
at the
beginning
of your search path.
If you installed into a nondefault directory
such as /your/dir,
then insert
/your/dir
at the beginning of your search path.
MANPATH
Before you use the
man
command for
f77
man
pages, set the
man
pages path.
This is usually done in the
.cshrc
file, in a line with
set MANPATH =
at the start.
The path is different for SunOS 5.0 and SunOS 4.1.x.
SunOS 5.0
:
If you installed into the standard, default directory,
then insert
/opt/SUNWspro/man
near the
beginning
of your
man
path.
If you installed into a nondefault directory
such as /your/dir, then
insert
/your/dir/SUNWspro/man
near the beginning of your
man
path.
SunOS 4.1.X
:
If you installed into the standard, default directory,
then insert
/usr/lang/man
near the
beginning
of your
man
path.
If you installed into a nondefault directory
such as /your/dir,
then insert
/your/dir/man
near the beginning of your
man
path.
LD_LIBRARY_PATH
You may have to set the environment variable
LD_LIBRARY_PATH
.
The path is different for SunOS 5.0 and SunOS 4.1.x.
SunOS 5.0
:
If you installed into the standard, default directory,
then insert
/opt/SUNWspro/SC2.0.1
at the
beginning
of this path.
If you installed into a nondefault directory
such as /your/dir, then
insert
/your/dir/SUNWspro/SC2.0.1
at the beginning of this path list.
SunOS 4.1.X
:
If you installed into the standard, default directory,
then insert
/usr/lang/SC2.0.1
at the start of this path list.
If you installed into a nondefault directory
such as /your/dir,
then insert
/your/dir/SC2.0.1
at the beginning of this path list.
The
2.0.1
part varies with the release
of the set of compilers.
FILES
Selected major files used by the compiler
a.out
Executable output file
file
.a
Library of object files
file
.d
Test coverage input file for
tcov
(1)
file
.f
FORTRAN
source file
file
.F
FORTRAN
source file for
cpp
(1)
file
.for
FORTRAN
source file
file
.il
Inline
expansion file
file
.o
Object file
file
.r
Ratfor source file
file
.s
Assembler source file
file
.S
Assembler source for
cpp
(1)
file
.tcov
Output from
tcov
(1)
/usr/lib/libc.a
Standard C library, see
intro
(3)
/usr/lib/libp/libc.a
Profiling library, see
intro
(3)
/tmp/*
Compiler temporary files
mon.out
File produced for analysis by
prof
(1)
gmon.out
File produced for analysis by
gprof
(1)
SEE ALSO
asa
(1),
cc
(1),
dbx
(1),
fpr
(1),
fsplit
(1),
gprof
(1),
ld
(1),
perror
(3f),
prof
(1),
tcov
(1)
FORTRAN User's Guide
FORTRAN Reference Manual
Numerical Computation Guide
Programming Utilities
Debugging Tools
Profiling Tools
Programming Libraries
Linker and Libraries Manual
The
FORTRAN User's Guide
has many more examples on such things as the options,
making and using libraries,
floating point,
debuggers,
porting, profiling, performance tuning,
and the C-FORTRAN interface.
The
FORTRAN Reference Manual
has examples for every statement type, and for almost
every function and subroutine.
DIAGNOSTICS
The diagnostics produced by
f77
itself are intended to be
self-explanatory. Occasional messages may be
produced by the linker.
The error messages are listed in
perror
(3f).
See also the
FORTRAN User's Guide
and the
FORTRAN Reference Manual .