NAME

     pghpf - Portland Group High Performance Fortran compiler.


SYNOPSIS

     pghpf [ -Mflag ] [ -f77_flags ] sourcefile...


DESCRIPTION

     pghpf is the interface to the Portland  Group  High  Perfor-
     mance  Fortran  (HPF) compiler.  pghpf invokes the High Per-
     formance Fortran Compiler, a Fortran 77 compiler, assembler,
     and  linker with options derived from its command-line argu-
     ments.  Fortran 77 options are valid with pghpf.

     pghpf bases its processing on the suffixes of the  files  it
     is  passed.   Files  whose  names end with .hpf, .f, .for or
     .f90 are taken as High  Performance  Fortran  source  files.
     They are compiled and assembled.  Files whose names end with
     .F are  also  considered  High  Performance  Fortran  source
     files,  but  they are first preprocessed by the C preproces-
     sor.  Files whose names end with .s  are  considered  to  be
     assembly  language files.  Files whose names end with .o are
     taken as object files, and are passed directly to the linker
     if  linking is requested.  Files whose names end with .a are
     taken as ar libraries.  No action is performed on  .a  files
     unless linking is requested.

     Files not ending in .o, .s, .f, .f90, .for, .F, .hpf, or  .a
     are taken as object files and passed to the linker (if link-
     ing is requested) with a warning message.

     Unless  one overrides  the  default  pghpf  action  using  a
     command-line  option, pghpf deletes intermediate Fortran 77,
     assembly, and object files (see the option -Mkeepftn).


PGHPF OPTIONS

     When debug files are compiled using the  - Mg,  option,  the
     same  option(s)  should be used when using pghpf to link the
     objects.

     -Mflag     Options flags for pghpf compiler. The flag  argu-
               ment may be any of the following:

               [no]autopar[=option[,option,...]]
                         The compiler generates FORALL statements
                         and  calls  to reduction intrinsics when
                         parallel   DO-loops   with   distributed
                         arrays are discovered.
                         Loop interchange and distribution may be
                         performed  to  increase  the  number  of
                         parallel loops. Information about paral-
                         lelization  is  displayed  with  the   -
                         Minfo=autopar command-line  switch.  The
                         option   - Mnoautopar disables automatic
                         parallelization that the  compiler  per-
                         forms  in  loops  marked  with  the  HPF
                         INDEPENDENT directive.
                         The optional arguments for  autopar  are
                         as follows:

                         noassoc | assoc
                                   noassoc  prevents  recognition
                                   of   reductions.  Programs  in
                                   which results are sensitive to
                                   the  order in which operations
                                   are  performed  will   require
                                   this   switch.   The  argument
                                   assoc  allows  recognition  of
                                   reductions and is the default.

                         levels:n  specifies the maximum  nesting
                                   depth,  n,  of  loops that get
                                   auto-parallelized. By default,
                                   the  maximum  nesting depth is
                                   3.

               [no]backslash
                         With the backslash option, the  compiler
                         recognizes  a  backslash  as  an  escape
                         character in quoted strings  (in  accor-
                         dance   with  standard  C  usage).  With
                         nobackslash,  the  compiler   treats   a
                         backslash  in quoted strings as a normal
                         character, and not as an escape  charac-
                         ter.

               cmf       Provides limited support for CM  Fortran
                         compatibility.  Where there is no chance
                         for ambiguity, pghpf supports  both  the
                         CM  Fortran  and HPF spellings of common
                         Fortran 90 features. This includes  sup-
                         port   for  the  intrinsics  DOTPRODUCT,
                         DLBOUND, DUBOUND, and DSHAPE which  have
                         calling  sequences  identical  to  their
                         Fortran   90   counterparts.   It   also
                         includes  support  for  the  CM  Fortran
                         method of using square brackets  in  the
                         definition of array constructors and the
                         use of the ARRAY keyword in place of the
                         Fortran  90  standard DIMENSION keyword.
                         There are three  CM  Fortran  intrinsics
                         which have names identical to their For-
                         tran 90 counterparts but  whose  calling
                         sequences   differ.  These  are  CSHIFT,
                         EOSHIFT,  and  RESHAPE.  If   pghpf   is
                         invoked with -Mcmf these intrinsics will
                         be interpreted using the CM Fortran con-
                         vention rather than the standard Fortran
                         90 convention. There are six  additional
                         non-standard  intrinsics  in CM Fortran:
                         PROJECT, LASTLOC, FIRSTLOC, RANK, DIAGO-
                         NAL,  and  REPLICATE. These non-standard
                         intrinsics are not  currently  supported
                         by  pghpf.  Other features of CM Fortran
                         that are not supported  are  the  layout
                         directives and the utility routines.

               [no]dclchk
                         Determines whether all program variables
                         must be declared.

               [no]depchk
                         With  nodepchk  the  compiler  does  not
                         check  for  potential  data dependencies
                         between  ambiguous   array   references.
                         Note,  with  nodepchk, if data dependen-
                         cies  exist,  this  option  can  produce
                         incorrect code.

               [no]dlines
                         The compiler treats lines containing "D"
                         in  column  1  as  executable statements
                         (ignoring the "D").  With  nodlines  the
                         compiler does not treat lines containing
                         "D" in column 1 as executable statements
                         (does not ignore the "D").

               extend    Allow 132-column source lines.

               freeform  Process source using Fortran 90 freeform
                         specifications.

               extract=[option[,option,...]]
                         Pass options to the function  extractor.
                         The -o filename option must be used with
                         this switch to name an extract  library.
                         See the option -Minline for more details
                         on the pghpf procedure extractor.

                         [name:]function
                                   A non-numeric option not  con-
                                   taining a period is assumed to
                                   be a function name.  The named
                                   function   is  extracted.   If
                                   name: is specified, what  fol-
                                   lows  is  always the name of a
                                   function.

               ftn       Stop after HPF  compiling.  Keep  inter-
                         mediate Fortran 77 file(s).

               g         Set the debug option -g, as well as the
                         -  Mkeepftn   option,  and  in  addition
                         suppress HPF line numbers  in  the  gen-
                         erated  Fortran  77 intermediate file to
                         make debugging of the Fortran 77  output
                         easier.

               info[=option[,option,...]]
                         Emit useful information to  stderr.  The
                         options are:

                         autopar   Emit  compilation  information
                                   on   parallelization   of   DO
                                   loops.

                         time | stat
                                   Emit compilation statistics.

                         loop      Emit information about  loops.
                                   This    includes   information
                                   about loop unrolling and  vec-
                                   torization.

                         all       Emit all of the above informa-
                                   tion.

               inform,level
                         Instructs the compiler to display  error
                         messages  at  the  specified  and higher
                         levels, where level is one of  the  fol-
                         lowing:

                         fatal     instructs  the   compiler   to
                                   display fatal error messages.

                         severe    instructs  the   compiler   to
                                   display severe and fatal error
                                   messages.

                         warn      instructs  the   compiler   to
                                   display  warning,  severe  and
                                   fatal error messages.

                         inform    instructs  the   compiler   to
                                   display   all  error  messages
                                   (inform,  warn,   severe   and
                                   fatal).


               inline=[option[,option,...]]
                         Pass options to  the  function  inliner.
                         Without  options  -Minline instructs the
                         compiler  to  perform  inlining   within
                         loops  with an INDEPENDENT directive and
                         to use a  temporary  directory  for  the
                         extract phase. The options are:

                         [lib:]filename.ext
                                   An option containing a  period
                                   is  assumed  to  be  an inline
                                   library created by a previous
                                   - Mextract option.  If lib: is
                                   specified, no period is neces-
                                   sary.    Functions   from  the
                                   specified library are inlined.
                                   If  no  library  is specified,
                                   functions are extracted from a
                                   temporary library created dur-
                                   ing an extract prepass.

                         [name:]function
                                   A non-numeric option not  con-
                                   taining a period is assumed to
                                   be a function name.  If  name:
                                   is  specified, what follows is
                                   always the name of a function.

                         levels:number
                                   number of levels  of  inlining
                                   are performed.  The default is
                                   1.

               keepftn   Keep the intermediate Fortran 77 file(s)
                         in files named file.f for each HPF input
                         file and continue the compilation.

               [no]list  instructs the compiler to create a list-
                         ing    file.   The   listing   file   is
                         filename.lst,  where  the  name  of  the
                         source file is filename.hpf.

               noautopar This option disables automatic parallel-
                         ization  that the compiler normally per-
                         forms  in  loops  marked  with  the  HPF
                         INDEPENDENT directive.

               nohpfc    Skip the HPF compilation step  but  com-
                         pile  using the Fortran 77 compiler if a
                         file with a .f or .F extension  is  sup-
                         plied.

               parmacs   Generate code  using  runtime  libraries
                         and  startup  routines  for  the PARMACS
                         environment.

               prof= func | line
                         Set profile options.  See the  PGI  pro-
                         filer  manual,  or  the  system profiler
                         manual, for  further  information.   The
                         options are:

                         func      Perform   PGI-style   function
                                   level profiling.

                         line      Perform PGI-style  line  level
                                   profiling.

               preprocess
                         Run the preprocessor on the input source
                         file.

               pvm       Generate code  using  runtime  libraries
                         and   startup   routines   for  the  PVM
                         environment.

               r8        Determines whether the compiler promotes
                         REAL  variables  and constants to DOUBLE
                         PRECISION and COMPLEX to DOUBLE COMPLEX.

               replicate [=dims:n]
                         detects common cases where the HPF  com-
                         piler generates calls to the HPF runtime
                         routine  pghpf_get_scalar(),  (a  costly
                         communication     call).     Calls    to
                         pghpf_get_scalar() are generated  for  a
                         distributed   array   reference   within
                         statements in a loop  in  the  following
                         cases:

                         1) The statement is an assignment to  an
                         undistributed array or to a scalar.
                         2) The array reference is  used  as  the
                         index to another array.
                         3) The array reference occurs  within  a
                         conditional expression.

                         The array replicator eliminates calls to
                         pghpf_get_scalar()  by  replicating dis-
                         tributed arrays that satisfy any of  the
                         above  three  conditions. Array replica-
                         tion will reduce  available  parallelism
                         and  will incur the cost of copying dis-
                         tributed  arrays  to  their   replicated
                         counterparts.

                         dims:n    the   replicator   will    not
                                   attempt  to  create replicated
                                   arrays for arrays  with  n  or
                                   more dimensions.

               rpm       Generate code  using  runtime  libraries
                         and  startup  routines  for the RPM (PGI
                         Real Parallel Machine) environment.

               rpm1      Generate code  using  runtime  libraries
                         and  startup routines for the RPM Single
                         (PGI Real  Parallel  Machine  -  Single)
                         environment.   This  environment is used
                         for debugging. A program run  calls  all
                         HPF  Runtime  library routines, but only
                         using a single processor.

               [no]sequence
                         All variables are  created  as  SEQUENCE
                         variables,  where  sequential storage is
                         assumed.  With nosequence, all variables
                         are  created  as nonsequential variables
                         unless an explicit SEQUENCE directive is
                         supplied  or  the variable is an assumed
                         size array.

               stats     Causes the driver to load  special  run-
                         time libraries for collecting communica-
                         tions and  message  passing  statistics.
                         For  use  with the runtime option -pghpf
                         -stat msg.

               standard  Causes the compiler to flag source  code
                         that  does  not conform to the ANSI For-
                         tran  90  standard  (note,  this  option
                         applies  to Fortran 90 and not HPF since
                         there currently is not an HPF ANSI stan-
                         dard).

               [no]upcase
                         The compiler allows uppercase letters in
                         identifiers. With -Mupcase, the identif-
                         iers "X" and "x" are different, and key-
                         words must be in lower case. This selec-
                         tion affects the linking process: if you
                         compile  and  link  the same source code
                         using -Mupcase on one  occasion  and   -
                         Mnoupcase  on  another,  you may get two
                         different  executables   (depending   on
                         whether  the  source  contains uppercase
                         letters).  The  standard  libraries  are
                         compiled using the default -Mnoupcase.

     -Wpass,option[,option...]
               Pass the options  to  the  specified  pass.   Each
               comma-delimited  option  is  passed  as a separate
               argument.  The passes are:  h  for  the  hpf  com-
               piler,  0  for the node compiler, a for the assem-
               bler, and l for the linker.


FORTRAN DRIVER OPTIONS

     All options appropriate to the Fortran 77 node compiler used
     with  pghpf.   Depending  on the platform, pghpf driver sup-
     ports a number of  Fortran  77  compilers.   Refer  to  your
     system's  documentation  for Fortran 77 options, or call the
     Portland Group if you have any questions or problems.


FILES

     a.out                         executable output file
     file.a                        library of object files
     file.f                        HPF source file
     file.F                        HPF source file
     file.f90                      HPF source file
     file.for                      HPF source file
     file.hpf                      HPF source file
     file.o                        object file
     file.s                        assembler source file.
     Executables reside in $PGI/arch/bin; libraries  and  objects
     reside  in  $PGI/arch/lib.   PGI  is an environment variable
     that can be set to the root  of  the  compiler  installation
     directory. The arch is the machine architecture which is one
     of (sparc, sgi, rs6000,pgon,...).  If PGI is  not  set,  the
     default is /usr/pgi.

SEE ALSO

     Fortran 77 node compiler documentation.
     pghpf Installation and Release Notes.

DIAGNOSTICS

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