NAME
	  IF77 - if77, f77: Driver for compiling, assembling, and
	  linking Fortran programs for the Paragon(TM) system.

     CROSS-DEVELOPMENT SYNTAX
	  if77 [switches] sourcefile...

     NATIVE SYNTAX
	  f77 [switches] sourcefile...

     DESCRIPTION
	  The if77 command invokes the Fortran compiler, assembler,
	  and linker with switches derived from	if77's command line
	  switches.

	  if77 bases its processing on the suffixes of the files it is
	  passed:

	  file.F      is a Fortran program with	preprocessor direc-
		      tives. It	is preprocessed, compiled and assem-
		      bled. The	resulting object file is placed	in the
		      current directory.

	  file.f      is a Fortran program. It is compiled and assem-
		      bled. The	resulting object file is placed	in the
		      current directory.

	  file.s      is an i860 assembly language file. It is assem-
		      bled and the resulting object file is placed in
		      the current directory.

	  file.o      is an object file. It is passed directly to the
		      linker if	linking	is requested.

	  file.a      is an ar library.	It is passed directly to the
		      linker if	linking	is requested.

	  file.c      is a C program. It is passed to the C compiler.

	  All other files are taken as object files and	passed to the
	  linker (if linking is	requested) with	a warning message. If
	  a file's suffix does not match its actual contents, unex-
	  pected results may occur.

	  If a single Fortran program is compiled and linked with one
	  if77 command,	then the intermediate object and assembly
	  files	are deleted.

	  By default, Fortran local variables are placed on the	stack.
	  Some Fortran programs	assume that all	variables are allo-
	  cated	statically. Static allocation can be forced with the
	  -Msave switch.
     SWITCHES
	  -c	      Skips the	link step; compiles and	assembles
		      only. Leaves the output from the assemble	step
		      in a file	named file.o for each file named
		      file.f (unless you also use the -o switch).

	  -Dname[=def]
		      Defines name to be def in	the preprocessor. If
		      def is missing, it is assumed to be empty. If
		      the = sign is also missing, then name is defined
		      to be the	string 1.

	  -E	      Preprocesses each	``.F'' file and	sends the
		      result to	stdout.	No compilation,	assembly, or
		      linking is performed.

	  -F	      Preprocesses each	``.F'' file and	leaves the
		      output in	a file named file.f for	each file
		      named file.F.

	  -g	      Equivalent to -Mdebug -O0	-Mframe.

	  -I-	      Accepted,	but has	no affect.

	  -Idirectory
		      Add a specified directory	to the compiler's
		      search path for include files where directory is
		      the pathname of the directory to be added. If
		      you use more than	one -I switch, the specified
		      directories are searched in the order they were
		      specified	(left to right).

		      The INCLUDE statement directs the	compiler to
		      begin reading from another file. The compiler
		      uses two rules to	locate the specified file.
		      Note that	the Fortran INCLUDE statement is dif-
		      ferent from the #include statement, whcih	uses
		      the C preprocessor.

			  1.  If the filename specified	in the INCLUDE
			      statement	includes a pathname, the com-
			      piler begins reading from	the file it
			      specifies.

			  2.  If no pathname is	provided in the
			      INCLUDE statement, the compiler searches
			      for the file in the following order:

		      o	any directories	specified with -I

		      o	the directory containing the source file

		      o	the current directory

	  -Koption    Requests special mathematical semantics. The
		      option values are:

		      ieee (default)
				  If used while	linking, links in a
				  math library that conforms with the
				  IEEE 754 standard.

				  If used while	compiling, tells the
				  compiler to perform real and double
				  precision divides in conformance
				  with the IEEE	754 standard.

		      ieee=enable
				  If used while	linking, has the same
				  effects as -Kieee, and also enables
				  floating point traps and underflow
				  traps. If used while compiling, has
				  the same effects as -Kieee.

		      ieee=strict
				  If used while	linking, has the same
				  effects as -Kieee=enable, and	also
				  enables inexact traps. If used while
				  compiling, has the same effects as
				  -Kieee.

		      noieee	  If used while	linking, produces a
				  program that flushes denormals to 0
				  on creation (which reduces underflow
				  traps) and links in a	math library
				  that is not as accurate as the stan-
				  dard library,	but offers greater
				  performance. This library offers
				  little or no support for exceptional
				  data types such as INF and NaN, and
				  will trap on such values when
				  encountered.

				  If used while	compiling, tells the
				  compiler to perform real and double
				  precision divides using an inline
				  divide algorithm that	offers greater
				  performance than the standard	algo-
				  rithm. This algorithm	produces
				  results that differ from the results
				  specified by the IEEE	standard by no
				  more than three units	in the last
				  place.

		      trap=fp	  If used while	linking, disables ker-
				  nel handling of floating point
				  traps. Has no	effect if used while
				  compiling.

		      trap=align  If used while	linking, disables ker-
				  nel handling of alignment traps. Has
				  no effect if used while compiling

	  -llibrary   Load the library liblibrary.a. The library is
		      loaded from the first library directory in the
		      library search path (see the -L switch) in which
		      a	file of	that name is encountered. (Passed to
		      the linker.)

	  -Ldirectory
		      Adds directory to	beginning of the library
		      search path. Also	see the	nostdlib and nostartup
		      options of the -M	switch.	(Passed	to the linker;
		      see the ld860 manual page	for more information
		      on the library search path.)

	  -m	      Produces a link map. (Passed to the linker.)

	  -Moption    Requests specific	actions	from the compiler. The
		      option values are	as follows (an unrecognized -M
		      option is	passed directly	to the compiler):

		      alpha	  Activate alpha-release compiler
				  features.

		      anno	  Produce annotated assembly files,
				  where	source code is intermixed with
				  assembly language. -Mkeepasm or -S
				  should be used as well.

		      beta	  Activate beta-release	compiler
				  features.

		      [no]bounds  [Don't] enable array bounds checking
				  (default -Mnobounds).

		      clr_reg	  Clear	the internal registers after
				  every	procedure invocation. This
				  option is used for diagnostic	pur-
				  poses.

		      concur[=option[,option...]]
				  Make loops parallel as defined by
				  the specified	options. option	can be
				  any of the following:

				  altcode:count	- Make innermost loops
				  without reduction parallel only if
				  their	iteration count	exceeds	count.
				  Without this switch, the compiler
				  assumes a default count of 100.

				  altcode_reduction:count - Make
				  innermost loops with reduction
				  parallel only	if their iteration
				  count	exceeds	count. Without this
				  switch, the compiler assumes a
				  default count	of 200.

				  dist:block - Make the	outermost
				  valid	loop in	any loop nest paral-
				  lel. This is the default option.

				  dist:cyclic -	Make the outermost
				  valid	loop in	any loop nest paral-
				  lel. If an innermost loop is made
				  parallel, its	iterations are allo-
				  cated	to processors cyclically. That
				  is, processor	0 performs iterations
				  0, 3,	6, ...;	processor 1 performs
				  iterations 1,	4, 7, ...; and proces-
				  sor 2	performs iterations 2, 5, 8,
				  and so on.

				  global_vcache	- Directs the vector-
				  izer to locate the cache within the
				  area of an external array when gen-
				  erating codes	for parallel loops. By
				  default, the cache is	located	on the
				  stack	for parallel loops.

				  noassoc - Do not make	loops with
				  reductions parallel.

		      cncall	  Make loops with calls	parallel. By
				  default, the compiler	does not make
				  loops	with calls parallel since
				  there	is no way for the compiler to
				  verify that the called routines are
				  safe to execute in parallel. When
				  you specify -Mcncall on the command
				  line,	the compiler also automati-
				  cally	specifies -Mreentrant.

				  -Mcncall also	allows several other
				  types	of loops to be made parallel:

				  - loops with I/O statements
				  - loops with conditional statements

				  - loops with low loop	counts

				  - non-vectorizable loops

				  If the compiler can detect a
				  cross-iteration dependency in	a
				  loop,	it will	not make the loop
				  parallel, even if -Mcncall is	speci-
				  fied.

		      cpp860	  Direct the internal preprocessor to
				  not compress white space.

		      cray=option[,option...]
				  Force	Cray Fortran (CF77) compati-
				  bility with respect to listed
				  options. Currently, only one option
				  is supported.

				  pointer     For puposes of optimiza-
				  tion is is assumed that
				  pointed-based	variables do not over-
				  lay the storage of any other vari-
				  able.

		      [no]dclchk  [Don't] require that all variables
				  be declared (default -Mnodclchk).

		      [no]debug	  [Don't] generate symbolic debug
				  information (default -Mnodebug). If
				  -Mdebug is specified with an optimi-
				  zation level greater than zero, line
				  numbers will not be generated	for
				  all program statements.

		      [no]depchk  [Don't] check	for potential data
				  dependencies (default	-Mdepchk).
				  -Mnodepchk is	especially useful in
				  disambiguating unknown data depen-
				  dencies arising from use of array
				  subscripts that cannot be derived at
				  compile time.	For example, if	an
				  array	is referenced in a loop	using
				  the induction	variable plus some
				  other	unknown	non-induction-based
				  variable as a	subscript, the com-
				  piler	must assume that the array
				  conflicts with a similar array
				  reference based on the induction
				  variable alone. If it	is known that
				  the two array	references do not con-
				  flict, then this switch may result
				  in better code. Do not use this
				  switch if such data dependencies do
				  exist, because incorrect code	may
				  result.

		      [no]dlines  [Don't] treat	lines beginning	with D
				  in column 1 as executable state-
				  ments, ignoring the D	(default
				  -Mnodlines).

		      dollar,char Specify char as the character	to
				  which	the compiler maps the dollar
				  sign.	The compiler allows the	dollar
				  sign in names.

		      extend	  Allow	132-column source lines	(nor-
				  mally	only 72	columns	are allowed).

		      extract=[option[,option...]]
				  Pass options to the subprogram
				  extractor (see the inline option for
				  more information). The options are:

				  [name:]subprogram-Extract the	speci-
				  fied subprogram. name: must be used
				  if the subprogram name contains a
				  period.

				  [size:]number-Extract	subprograms
				  containing less than approximately
				  number statements.

				  If both number(s) and	subprogram(s)
				  are specified, then subprograms
				  matching the given name(s) or	meet-
				  ing the size requirements are
				  extracted.

				  The -ofile switch must be used with
				  -Mextract to tell the	compiler where
				  to place the extracted subprograms.
				  The name of the specified file must
				  contain a period.

		      [no]frame	  [Don't] include the frame pointer
				  (default -Mnoframe). -Mnoframe can
				  improve execution time and decrease
				  code,	but makes it impossible	to get
				  a call stack traceback when using a
				  debugger.
		      [no]i4	  [Don't] treat	integer	as integer*4
				  (default -Mi4). -Mnoi4 treats
				  integer as integer*2.

		      info=[option[,option...]]
				  Produce useful information to	the
				  standard error output. The options
				  are:

				  time or stat-Output compilation
				  statistics.

				  loop-Output information about	loops.
				  This includes	information about vec-
				  torization, software pipelining, and
				  parallelization.

				  concur-Same as -Minfo=loop.

				  inline-Output	information about sub-
				  programs extracted and inlined.

				  cycles or block or size-Output block
				  size in cycles. Useful for comparing
				  various optimization levels against
				  each other. The cycle	count produced
				  is the compiler's static estimate of
				  freeze-free cycles for the block.

				  ili-Output intermediate language as
				  comments in assembly file.

				  all-All of the above.

		      inline=[option[,option...]]
				  Pass options to the subprogram
				  inliner. The options are:

				  [lib:]library-Inline subprograms in
				  the specified	inliner	library	(pro-
				  duced	by -Mextract). If lib: is not
				  used,	the library name must contain
				  a period. If no library is speci-
				  fied,	subprograms are	extracted from
				  a temporary library created during
				  an extract prepass.

				  [name:]subprogram-Inline the speci-
				  fied subprogram. If name: is not
				  used,	the subprogram name must not
				  contain a period.

				  [size:]number-Inline subprograms
				  containing less than approximately
				  number statements.

				  levels:number-Perform	number levels
				  of inlining (default 1).

				  If both number(s) and	subprogram(s)
				  are specified, then subprograms
				  matching the given name(s) or	meet-
				  ing the size requirements are
				  inlined.

		      iomutex	  Place	critical sections around I/O
				  statements.

				  A critical section is	a portion of
				  the code that	is only	executed by
				  one thread. The switch -Miomutex
				  places critical sections around all
				  I/O statements whether they are in
				  loops	or not.	This is	a switch that
				  should be active if you want to
				  parallelize loops that contain I/O
				  statements.

				  You must specify -Mcncall or use a
				  directive to parallelize loops that
				  contain I/O statements.

				  The switch -Mconcur includes an
				  imbedded -Miomutex. Also, the	switch
				  -Mcncall includes an imbedded
				  -Miomutex.

				  If you are not parallelizing loops
				  with I/O statements, specify
				  -Mnoiomutex. This is because,	if you
				  are not parallelizing	loops with I/O
				  statements, you do not need to put
				  I/O statements in critical sections.

				  -Miomutex does not affect correct
				  execution of the program. It makes
				  sure that only one thread is execut-
				  ing the I/O statement	at a time.

		      keepasm	  Keep the assembly file for each For-
				  tran source file, but	continue to
				  assemble and link the	program. This
				  is mainly for	use in compiler	per-
				  formance analysis and	debugging.
		      list[=name]
				  Create a source listing in the file
				  name.	If name	is not specified, the
				  listing file has the same name as
				  the source file except that the
				  ``.f'' suffix	is replaced by a
				  ``.lst'' suffix. If name is speci-
				  fied,	the listing file has that
				  name;	no extension is	appended.

		      nolist	  Don't	create a listing file (this is
				  the default).

		      [no]longbranch
				  [Don't] allow	compiler to generate
				  bte and btne instructions (default
				  -Mlongbranch). -Mnolongbranch	should
				  be used only if an assembly error
				  occurs.

		      neginfo=concur
				  Print	information for	each countable
				  loop that is not made	parallel stat-
				  ing why the loop was not made	paral-
				  lel.

		      noansi	  Allow	multiple implicit statements.

		      nostartup	  Don't	link the usual start-up	rou-
				  tines	(crt0.o	and ifmain.o), which
				  contain the entry point for the pro-
				  gram.

		      nostdinc	  Remove the default include directory
				  (/usr/include	for f77,
				  $(PARAGON_XDEV)/paragon/include for
				  if77)	from the include files search
				  path.

		      nostdlib	  Don't	link the standard libraries
				  (libpm.o, guard.o, libf.a, libm.a,
				  libc.a, libic.a, and libmach3.a)
				  when linking a program.

		      onetrip	  Force	each do	loop to	be iterated at
				  least	once.

		      [no]perfmon
				  [Don't] link the performance moni-
				  toring module	(libpm.o) (default
				  -Mperfmon). See the Paragon(tm) Sys-
				  tem Application Tools	User's Guide
				  for information on performance moni-
				  toring.

		      prof=x	  This option is ignored.

		      [no]quad	  [Don't] force	top-level objects
				  (such	as local arrays) of size
				  greater than or equal	to 16 bytes to
				  be quad-aligned (default -Mquad).
				  Note that -Mquad does	not affect
				  items	within a top-level object;
				  such items are quad-aligned only if
				  appropriate padding is inserted.
				  Common blocks	are always
				  quad-aligned.

		      [no]r8	  [Don't] treat	real as	double preci-
				  sion and real	constants as double
				  precision constants (default
				  -Mnor8).

		      [no]r8intrinsics
				  [Don't] treat	intrinsics as follows
				  (default -Mnor8intrinsics):

				     cmplx as dcmplx
				     real as dble
				     alog as dlog
				     amax1 as dmax1
				     amin1 as dmin1
				     amod as dmod
				     csqrt as cdsqrt
				     clog as cdlog
				     cexp as cdexp
				     csin as cdsin
				     ccos as cdcos

		      [no]recursive
				  [Don't] allocate local variables on
				  the stack, thus allowing recursion
				  (default -Mnorecursive). SAVEd,
				  data-initialized, or namelist
				  members are always allocated stati-
				  cally, regardless of the setting of
				  this switch.

		      [no]reentrant
				  [Don't] generate reentrant code
				  (default -Mnoreentrant). -Mreentrant
				  disables certain optimizations that
				  can improve performance but may
				  result in code that is not
				  reentrant. Even with -Mreentrant,
				  the code may still not be reentrant
				  if it	is improperly written (e.g.,
				  declares static variables). You may
				  need to increase the stacksize
				  before executing programs compiled
				  with -Mreentrant. A segmentation
				  violation occurs if stacksize	is too
				  low.

		      reloc_libs  Causes -l switches that appear
				  before source	or object file names
				  on the compiler command line to
				  appear after these file names	on the
				  ld command line.

		      safealloc	  Informs the compiler that all	allo-
				  catable commons are allocated	once
				  and can be treated as	ordinary com-
				  mons for optimization	purposes. This
				  option can improve performance for
				  some applications, but should	be
				  used with caution.

		      [no]save	  [Don't] allocate all local data in
				  static locations instead of on the
				  stack	(default -Msave). The effect
				  is similar to	using the save state-
				  ment for all local variables.	Recur-
				  sion is not allowed with this	switch
				  in effect. -Msave may	allow some
				  older	Fortran	programs to run, but
				  may decrease performance.

		      [no]signextend
				  [Don't] sign-extend the result of a
				  conversion of	a signed integer to a
				  smaller signed type (default -Mno-
				  signextend). For example, if -Msig-
				  nextend is in	effect and an
				  integer*4 containing the value 65535
				  is converted to an integer*2,	the
				  value	of the integer*2 will be -1.
				  This option is provided for compati-
				  bility with other compilers. -Msig-
				  nextend will decrease	performance.

		      split_loop_ops=n
				  Set a	threshold of n floating-point
				  operations within a loop. Innermost
				  loops	whose number of	floating-point
				  operations exceeds n are split. Each
				  floating-point operation counts as
				  two. The default for n is 40 when
				  -Mvect is used.

		      nosplit_loop_ops
				  Do not split loops when the
				  floating-point operation threshold
				  is exceeded. When -Mvect is speci-
				  fied,	innermost loops	whose number
				  of floating point operations exceed
				  40 are split by default. This	switch
				  turns	the default off.

		      split_loop_refs=n
				  Set a	threshold of n array element
				  loads	and stores within a loop.
				  Innermost loops whose	number of
				  loads	and stores exceeds n are
				  split. The default for n is 20 when
				  -Mvect is used.

		      nosplit_loop_refs
				  Do not split loops when the array
				  element loads	and stores threshold
				  is exceeded. When -Mvect is speci-
				  fied,	innermost loops	whose number
				  of array element loads and stores
				  exceeds 20 are split by default.
				  This switch turns the	default	off.

		      standard	  Flag non-ANSI-Fortran77 usage.

		      [no]streamall
				  [Don't] stream all vectors to	and
				  from cache in	a vector loop (default
				  -Mstreamall).	When -Mnostreamall is
				  in effect, the compiler chooses one
				  vector to come directly from or go
				  directly to main memory, without
				  being	streamed into or out of	cache.

		      [no]stride0
				  [Don't] inhibit certain optimiza-
				  tions	and allow for stride 0 array
				  references. -Mstride0	may degrade
				  performance, and should only be used
				  if zero stride induction variables
				  are possible.	(default -Mnostride0).

		      unixlogical
				  Set the value	of a logical expres-
				  sion to one if the result is .TRUE..
		      [no]upcase  [Don't] preserve case	in names
				  (default -Mnoupcase).	-Mnoupcase
				  causes all names to be converted to
				  lower	case. Note that, if -Mupcase
				  is used, then	variable name Q	is
				  different than variable name q, and
				  keywords must	be in lower case.

		      unroll[=option [,option ...]]
				  Invoke the loop unroller and set the
				  optimization level to	2 if it	is set
				  to less than 2. option is one	of the
				  following:

				  c:m -	Completely unroll loops	with a
				  constant loop	count less than	or
				  equal	to m. If m is not supplied,
				  the default value is 4.

				  n:u -	Unroll loops that are not com-
				  pletely unrolled or have a
				  non-constant loop count u times. If
				  u is not supplied, the unroller com-
				  putes	the number of times a loop is
				  unrolled.

		      nounroll	  Do not unroll	loops.

		      vect[=option[,option...]]
				  Perform vectorization	(also enables
				  -Mvintr). If no options are speci-
				  fied,	then all vector	optimizations
				  are enabled. The available options
				  are:

				  altcode[:number] - Produce
				  non-vectorized code to be executed
				  if the loop count is less than or
				  equal	to number. Otherwise execute
				  vectorized code. The default value
				  for number is	10.

				  cachesize:number-This	sets the size
				  of the portion of the	cache used by
				  the vectorizer to number bytes.
				  Number must be a multiple of 16, and
				  less than the	cache size of the
				  microprocessor (16384	for the
				  i860 XP, 8192	for the	i860 XR). In
				  most cases the best results occur
				  when number is set to	4096, which is
				  the default (for both
				  microprocessors).

				  noassoc-When scalar reductions are
				  present (for example,	dot product),
				  and loop unrolling is	turned on, the
				  compiler may change the order	of
				  operations so	that it	can generate
				  better code. This transformation can
				  change the result of the computation
				  due to round-off error. The use of
				  noassoc prevents this	transforma-
				  tion.

				  [no]recog-[Don't] Recognize certain
				  loops	as simple vector loops and
				  call a special routine.

				  smallvect[:number]-This option
				  allows the vectorizer	to assume that
				  the maximum vector length is no
				  greater than number. Number must be
				  a multiple of	10. If number is not
				  specified, the value 100 is used.
				  This option allows the vectorizer to
				  avoid	stripmining in cases where it
				  cannot determine the maximum vector
				  length. In doubly-nested,
				  non-perfectly	nested loops this
				  option can allow invariant vector
				  motion that would not	otherwise have
				  been possible. Incorrect code	may
				  result if this option	is used, and a
				  vector takes on a length greater
				  than specified.

				  streamlim:n This sets	a limit	for
				  application of the vectorizer	data
				  streaming optimization. If data
				  streaming requires cache vectors of
				  length less than n, the optimization
				  is not performed. Other vectorizer
				  optimizations	are still performed.
				  The data streaming optimization has
				  a high overhead compared to other
				  loop optimizations, and can be
				  counter-productive when used for
				  short	vectors. The n specifier is
				  not optional.	The default limit is
				  32 elements if streamlim is not
				  used.

				  transform-Perform high-level
				  transformations such as loop split-
				  ting and loop	interchanging. This is
				  normally not useful without
				  -Mvect=recog.

				  -Mvect with no options means
				  -Mvect=recog,transform,cachesize:4096,altcode:10.

		      [no]vintr	  [Don't] perform recognition of vec-
				  tor intrinsics (default -Mnovintr,
				  unless -Mvect	is used).

		      [no]xp	  [Don't] use i860 XP microprocessor
				  features (default -Mxp).

	  -nostdinc   Equivalent to -Mnostdinc.

	  -nx	      Creates an executable application	for multiple
		      nodes.

		      o	Using -nx while	compiling has no effect.

		      o	Using -nx while	linking	creates	an application
			that automatically copies itself into multiple
			nodes. It also links in	libnx.a, the library
			that contains the calls	in the Paragon(tm)
			System Fortran Calls Reference Manual. You can
			control	the execution of an application	linked
			with -nx by using command-line switches	and
			environment variables, as described in the
			Paragon(tm) System User's Guide.

		      To link in libnx.a without creating an applica-
		      tion that	automatically copies itself into mul-
		      tiple nodes, use -lnx instead. An	application
		      linked with -lnx can use operating system	calls
		      to create	node processes under program control.

		      -node is currently accepted as a synonym for
		      -nx, but this support may	be dropped in a	future
		      release.

	  -ofile      Uses file	for the	output file, instead of	the
		      default a.out (or	file.o if used with the	-c
		      switch).

	  -O[level]   Set the optimization level:

		      0		  A basic block	is generated for each
				  Fortran statement. No	scheduling is
				  done between statements. No global
				  optimizations	are performed.
		      1		  Scheduling within extended basic
				  blocks is performed. Some register
				  allocation is	performed. No global
				  optimizations	are performed.

		      2		  All level 1 optimizations are	per-
				  formed. In addition, traditional
				  scalar optimizations such as induc-
				  tion recognition and loop invariant
				  motion are performed by the global
				  optimizer.

		      3		  All level 2 optimizations are	per-
				  formed. In addition, software	pipe-
				  lining is performed.

		      4		  All level 3 optimizations are	per-
				  formed, but with more	aggressive
				  register allocation for software
				  pipelined loops. In addition,	code
				  for pipelined	loops is scheduled
				  several ways,	with the best way
				  selected for the assembly file.

		      If a level is not	supplied with -O, the optimi-
		      zation level is set to 2.	If -O is not speci-
		      fied, the	default	level is 1. Setting optimiza-
		      tion to levels higher than 0 may reduce the
		      effectiveness of symbolic	debuggers.

	  -p	      This option is ignored.

	  -r	      Generates	a relinkable object file. (Passed to
		      the linker.)

	  -s	      Strips symbol table information. (Passed to the
		      linker.)

	  -S	      Skips the	link and assemble steps. Leaves	the
		      output from the compile step in a	file named
		      file.s for each file named file.f.

	  -Uname      Remove any initial definition of name in the
		      preprocessor. Since all -D switches are pro-
		      cessed before all	-U switches, the -U switch can
		      be used to override the -D switch.

	  -v	      Prints the entire	command	line for each tool as
		      it is invoked, and invokes each tool in verbose
		      mode (if it has one).

	  -V	      Prints the version banner	for each tool
		      (assembler, linker, etc.)	as it is invoked.

	  -VV	      Display the driver version number	and the	loca-
		      tion of the online release notes.	No compilation
		      is performed.

	  -Wpass,option[,option...]
		      Passes the specified options to the specified
		      pass:

		      0	(zero)	  Compiler.

		      a		  Assembler.

		      l		  Linker.

		      Each comma-delimited string is passed as a
		      separate argument.

	  -Ypass,directory
		      Looks for	the executable file for	the specified
		      pass in the specified directory (rather than in
		      the default location), where pass	is one of the
		      following:

		      0	(zero)	  Compiler executable file.

		      a		  Assembler executable file.

		      l		  Linker executable file.

		      S		  Startup object files.

		      I		  Standard include files.

		      L		  Standard libraries (passes -YLdirec-
				  tory to the linker).

		      U		  Secondary libraries (passes
				  -YUdirectory to the linker).

		      P		  All libraries	(passes	-YPdirectory
				  to the linker).

		      See the ld860 manual page	for more information
		      on the -YL, -YU, and -YP switches.

     FILES
	  a.out			      Executable output	file.

	  file.a		      Library of object	files.

	  file.f		      Fortran source file.

	  file.F		      Fortran source file for prepro-
				      cessing.

	  file.lst		      Listing file produced by -Mlist.

	  file.o		      Object file.

	  file.s		      Assembler	source file.

	  The following	files and directories are used in the
	  cross-development environment	(if77).	PARAGON_XDEV is	an
	  environment variable that can	be set to the root of the com-
	  piler	installation directory.	If PARAGON_XDEV	is not set,
	  the default is /usr/paragon/XDEV. The	directory where	the
	  driver, compiler, and	tools are located must be included in
	  your path. For Sun4 users, for example,
	  $PARAGON_XDEV/paragon/bin.sun4 would be included in the
	  path.

	  $(PARAGON_XDEV)/paragon/bin.arch
				      Directory	containing executables
				      for system arch (arch identifies
				      the architecture of the system,
				      e.g. sgi or sun4).

	  $(PARAGON_XDEV)/paragon/bin.arch/if77
				      Fortran compiler driver.

	  $(PARAGON_XDEV)/paragon/bin.arch/iftn
				      Fortran compiler.

	  $(PARAGON_XDEV)/paragon/bin.arch/as860
				      Intel (COFF) assembler.

	  $(PARAGON_XDEV)/paragon/bin.arch/ld860
				      Intel (COFF) linker.

	  $(PARAGON_XDEV)/paragon/include
				      Standard include directory.

	  $(PARAGON_XDEV)/paragon/lib-coff
				      Standard library directory.

	  $(PARAGON_XDEV)/paragon/lib-coff/crt0.o		     C
				      start-up routine.

	  $(PARAGON_XDEV)/paragon/lib-coff/ifmain.o
				      Fortran initial routine.

	  $(PARAGON_XDEV)/paragon/lib-coff/libpm.o
				      Performance monitoring module.

	  $(PARAGON_XDEV)/paragon/lib-coff/guard.o
				      Barrier between user and system
				      code.

	  $(PARAGON_XDEV)/paragon/lib-coff/libf.a
				      Fortran runtime library.

	  $(PARAGON_XDEV)/paragon/lib-coff/libm.a
				      Math library.

	  $(PARAGON_XDEV)/paragon/lib-coff/libc.a
				      Standard C library.

	  $(PARAGON_XDEV)/paragon/lib-coff/libic.a		     C
				      built-in intrinsic library.

	  $(PARAGON_XDEV)/paragon/lib-coff/libmach.a
				      Mach operating system library.

	  $(PARAGON_XDEV)/paragon/lib-coff/noieee
				      Library directory	used when
				      linking with -Knoieee (contains
				      non-IEEE versions	of libf.a and
				      libm.a).

	  $(PARAGON_XDEV)/paragon/lib-coff/options/autoinit.o
				      Routine linked in	when -nx is
				      used.

	  The following	files and directories are used by default in
	  the native environment (f77).	If / is	not the	root of	the
	  compiler installation	directory, you must set	PARAGON_XDEV
	  to this directory and	add $PARAGON_XDEV/usr/ccs/bin to your
	  path.

	  /usr/ccs/bin		      Directory	containing execut-
				      ables.

	  /usr/ccs/bin/f77	      Fortran compiler driver.

	  /usr/ccs/bin/iftn	      Fortran compiler.

	  /usr/ccs/bin/as	      Assembler.

	  /usr/ccs/bin/ld	      Linker.

	  /usr/include		      Standard include directory.

	  /usr/lib		      Standard library directory.

	  /usr/lib/crt0.o	      C	start-up routine.

	  /usr/lib/ifmain.o	      Fortran initial routine.

	  /usr/lib/libpm.o	      Performance monitoring module.

	  /usr/lib/guard.o	      Barrier between user and system
				      code.

	  /usr/lib/libf.a	      Fortran runtime library.

	  /usr/lib/libm.a	      Math library.

	  /usr/lib/libc.a	      Standard C library.

	  /usr/lib/libic.a	      C	built-in intrinsic library.

	  /usr/lib//libmach.a	      Mach operating system library.

	  /usr/lib/noieee	      Library directory	used when
				      linking with -Knoieee (contains
				      non-IEEE versions	of libf.a and
				      libm.a).

	  /usr/lib/options/autoinit.o
				      Routine linked in	when -nx is
				      used.

     ENVIRONMENT VARIABLES
	  The environment variable MAKECPP is supported. MAKECPP is a
	  colon-separated list of directories that is added to the
	  compiler search path for include files.

	  If you use the -Knoieee switch and define LPATH or
	  PARAGON_LPATH, be sure that the directory containing the
	  noieee versions of libf.a and	libm.a is listed before	a
	  directory containing the ieee	versions of these libraries.
	  If in	doubt, compile with the	-v switch to see which
	  libraries are	linked in. See the ld860 manual	page for more
	  information.

     DIAGNOSTICS
	  The compiler produces	information and	error messages as it
	  translates the input program.	The linker and assembler may
	  generate their own error messages.

     SEE ALSO
	  ar860, as860,	dump860, icc, ifixlib, ld860, nm860, size860,
	  strip860



Acknowledgement and Disclaimer