1989.1 Compiler Release; ftn (fortran), revision 1.0, 89/08/02
ftn (fortran) - compile a fortran program
ftn name [-ac|-pic]
[-b [file]|-nb]
[-ncond|-cond]
[-config name1 name2...]
[-cpu id]
[-db|-dbs|-dba|-ndb]
[-dynm|-save]
[-nexp|-exp]
[-ff]
[-nfrnd|-frnd]
[-i*4|-i*2]
[-idir pathname]
[-nindexl|-indexl]
[-info [n]]
[-inlib pathname]
[-inline char]
[-nl|-l [file]]
[-l*4|-l*1,-l*2]
[-msgs|-nmsgs]
[-nclines]
[-opt [n]|-nopt]
[-nsubchk|-subchk]
[-ntype|-type]
[-u]
[-uc]
[-version]
[-warn|-nwarn]
[-nxref|-xref]
[-xrs|-nxrs]
[-nzero|-zero]
DESCRIPTION
ftn translates a FORTRAN source file into one or more binary object
modules, which can be executed or used as input to the binder. Source
files may be a maximum of 32767 lines long. For complete information,
see the Domain FORTRAN Language Reference and the Domain FORTRAN Software
Release Document for Versions 10.6 and 10.7.
You can typically improve run-time performance if you compile your code
using the -cpu 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. The option -cpu 3000, for example, generates optimal
code for the DSP90, DN330, DN560, DN570, DN580, DN3000, DN3500, DN4000,
and DN4500 processors.
ARGUMENTS
source_file (required)
Specify the source file to be compiled. If you specify the
pathname without an .ftn suffix, the compiler automatically
appends .ftn, and searches for that filename. If not found, it
searches for the pathname that you typed. If not found, the
compiler reports an error.
OPTIONS
-ac (default)
Compile using absolute code. This switch only applies when you
generate 680x0 code.
-pic Compile using Position Independent Code. This switch only applies
when you generate 680x0 code.
-align (default)
Use longword alignment. Obsolete switch.
-nalign
No longword alignment. Obsolete switch.
-b [file] (default)
Generate binary file named file.bin. If argument is omitted, binary
file is named source_file.bin.
-nb Suppress binary file.
-cond
Compile lines with D in column 1.
-ncond (default)
Ignore lines with D in column 1.
-config name1 name2...
Conditional processing: compile statements associated with name1,
name2, etc. via conditional compiler directives.
-cpu id
Generate code for a particular class of processors. Using a
processor-specific code generation mode can result in programs that
run faster. Values for id are
any Generate default target code for the workstation on
which you compile. This value is obsolete. Use a88k
or m68k.
a88k Generate code for Series 10000 workstations. This
value is the default for the DN10000 processor. Use
this value when you run the compiler on a 680x0-based
workstation and you want to generate code that will
run on a Series 10000 workstation.
m68k Generate code for 680x0-based workstations. This
value is the default for the M680x0 processor. Use
this value when you run the compiler on a Series
10000 workstation and you want to generate code that
will run on a 680x0-based workstation.
160,460,660 Generate code that uses the additional instructions
supported by DNx60 (except the DN560) and DSP160
processors. These three values are synonyms.
90, 330, 560, 570, 580, 3000
Generate code that uses the additional instructions
supported by the DSP90, DN330, DN560, DN570, DN580,
DN3000, DN3500, DN4000, and DN4500 processors. These
six values are synonyms.
peb Generate code for a Performance Enhancement Board.
fpx Generate code for the floating-point accelerator
(FPX) that is available with the DN5xx workstations.
This switch can produce substantially faster code.
Do not use this switch, however, if the target
machine does not have an FPX board.
fpa1 Produce optimized code for the Floating-Point
Accelerator (FPA) board that is available with the
DN3500, DN4000, and DN4500 workstations. This switch
can produce substantially faster code. Do not use
this switch, however, if the target machine does not
have an FPA board.
-db (default)
Generate runtime debug line number table (for traceback).
-dbs Generate full runtime debug tables with symbol table. NOTE: This
option does not affect the -opt level.
-dba Identical to -dbs except that no optimization is performed, even if
you also specify -opt.
-ndb Suppress runtime debug tables.
-dynm (default)
Allocate local variables on stack if possible.
-save
Allocate all local variables in static space.
-exp Generate expanded code listing (implies -l). NOTE: You can not use
-exp and -xref on the same command line.
-nexp (default)
Suppress expanded code listing.
-ff Activate free format: length of source lines may be up to 1024
characters; an ampersand (&) in column 1 specifies a continuation
line.
-frnd
Store and round floating point numbers before comparisons. This
switch only applies when you generate 680x0 code.
-nfrnd (default)
Do not round floating point numbers. This switch only applies when
you generate 680x0 code.
-i*2 2-byte integer is default integer type.
-i*4 (default)
4-byte integer is default integer type.
-idir pathname
Add a pathname to the search hierarchy of directories for include
file names. The hierarchy applies only to file name strings which
do NOT begin with '.', '~', or '/'. Up to 63 -idir options may be
given. The compiler first tries to open the include file name as
given. Failing that, it prefixes the given include file name with
the -idir pathnames in the same order as supplied on the command
line.
-indexl
Use 32 bit indexing on all common and dummy argument arrays.
-nindexl (default)
Indexing based on dimension information.
-info [n]
Default is n=2. Display information messages to nth level.
-inlib pathname
Load pathname (a pic binary file) at runtime and resolve global
references.
-inline char
Select specified character ("char") as in-line comment designator.
-l [file]
Generate compilation listing. If pathname is omitted, use
source_file.lst.
-nl (default)
Suppress compilation listing.
-l*1 1-byte logical is default logical type.
-l*2 2-byte logical is default logical type.
-l*4 (default)
4-byte logical is default logical type.
-msgs (default)
Generate final error and warning count message.
-nmsgs
Suppress final error and warning count message.
-nclines
Suppress generation of COFF line number tables. Applies only to
680x0 target compilers.
-opt [n] (default)
Perform global optimization. 'n' is a single digit integer in the
range 0 to 4, indicating the level of optimization performed. If
'n' is omitted, 3 is the default level. -opt 0 is identical to the
obsolete switch -nopt. -opt 3 is identical to the obsolete switch
-optall. Increasing the optimization level results in faster
execution of your program, at the expense of longer compilation
time. Special restrictions apply to the use of -opt 4. See the
Domain FORTRAN Language Reference manual for details.
-optall
Perform global program optimization. Obsolete switch. Use -opt 3.
-nopt
Suppress global optimization. Obsolete switch. Use -opt 0.
-peb Generate inline code for Performance Enhancement Board. Obsolete
switch. Use -cpu peb.
-npeb (default)
No inline code for Performance Enhancement Board. Obsolete switch.
Use -cpu any.
-prasm (default)
Create expanded compiler listings in Series 10000 assembler format.
This switch applies only when you generate Series 10000 code.
-nprasm
Create expanded compiler listings in a format similar to 680x0
format. This switch applies only when you generate Series 10000
code.
-subchk
Subscript checking.
-nsubchk (default)
Suppress subscript checking.
-type
Flag all variables and functions not explicitly typed.
-ntype (default)
Suppress type checking.
-u Turn on case sensitivity for identifiers.
-uc Turn on UNIX* Compatibility features: appended underscore to
subprogram and common block names; UNIX version of default
filenames; hidden character length variable passed as 4-byte integer
by value.
-version
Display version number of compiler.
-warn (default)
Display warning messages.
-nwarn
Suppress warning messages.
-xref
Generate symbol table map and cross reference (implies -l). NOTE:
You can not use -exp and -xref on the same command line.
-nxref (default)
Suppress symbol table map and cross reference.
-xrs (default)
Save registers across a call to an external procedure or function.
-nxrs
Do not assume that calls to external routines have saved the
registers.
-zero
Initialize static storage to zero.
-nzero (default)
No implicit initialization of static storage to zero.
EXAMPLES
$ ftn graph.line -l Compile source file graph.line.ftn
in the current working directory;
produce binary graph.line.bin and
list file graph.line.lst, also in
current working directory.