


FTNCHEK 2.11(1L)                                 FTNCHEK 2.11(1L)


NAME
        ftnchek - Fortran 77 program checker


SYNOPSIS
       ftnchek [ -arguments[=list] ] [ -array[=list] ]
            [ -calltree[=list] ] [ -[no]check ]
            [ -columns[=num] ] [ -common[=list] ]
            [ -[no]crossref ] [ -[no]declare ]
            [ -[no]division ] [ -errors[=num] ] [ -[no]extern ]
            [ -[no]f77[=list] ] [ -[no]f90[=list] ]
            [ -[no]f95[=list] ] [ -[no]help ] [ -include=str ]
            [ -intrinsic[=list] ] [ -[no]library ] [ -[no]list ]
            [ -makedcls[=list] ] [ -[no]novice ] [ -output=str ]
            [ -pointersize[=num] ] [ -[no]portability[=list] ]
            [ -[no]pretty[=list] ] [ -[no]project ] [ -[no]pure ]
            [ -[no]quiet ] [ -[no]reference ] [ -[no]resources ]
            [ -[no]sixchar ] [ -[no]sort ] [ -source[=list] ]
            [ -[no]symtab ] [ -[no]truncation[=list] ]
            [ -usage[=list] ] [ -[no]vcg ] [ -[no]version ]
            [ -[no]volatile ] [ -wordsize[=num] ] [ -wrap[=num] ]
            [ files ...  ]


DESCRIPTION


       ftnchek  (short for Fortran checker) is designed to detect
       certain errors in a Fortran program that a  compiler  usu-
       ally  does  not.   ftnchek  is  not  primarily intended to
       detect syntax errors.  Its purpose is to assist  the  user
       in  finding semantic errors.  Semantic errors are legal in
       the Fortran language but are wasteful or may cause  incor-
       rect  operation.   For  example, variables which are never
       used may indicate some omission in the program; uninitial-
       ized  variables  contain garbage which may cause incorrect
       results to be calculated;  and  variables  which  are  not
       declared  may  not  have  the  intended  type.  ftnchek is
       intended to assist users in the debugging of their Fortran
       program.   It  is not intended to catch all syntax errors.
       This is the function of  the  compiler.   Prior  to  using
       ftnchek,  the user should verify that the program compiles
       correctly.


INVOKING FTNCHEK
        ftnchek is invoked through a command of the form:

        $ ftnchek [-option -option ...] filename [filename ...]

       The brackets indicate something which  is  optional.   The
       brackets  themselves are not actually typed.  Here options
       are command-line switches or settings, which  control  the
       operation  of  the  program  and the amount of information



                            July 1999                           1





FTNCHEK 2.11(1L)                                 FTNCHEK 2.11(1L)


       that will be printed out.  If no option is specified,  the
       default  action  is to print error messages, warnings, and
       informational messages, but not  the  program  listing  or
       symbol tables.


       Each option begins with the '-' character.  (On VAX/VMS or
       MS-DOS systems you  may  use  either  '/'  or  '-'.)   The
       options  are  described at greater length in the next sec-
       tion.

       ftnchek options fall into two categories: switches,  which
       are  either  true  or  false,  and  settings, which have a
       numeric or string value.  The name of a switch is prefixed
       by  'no'  or 'no-' to turn it off: e.g. -nopure would turn
       off the warnings about impure functions. The  'no'  prefix
       can  also be used with numeric settings, having the effect
       of turning off the corresponding warnings.  Settings  that
       control  lists of warnings have a special syntax discussed
       below.  Only the first 3 characters of an option name (not
       counting  the  '-') need be provided.  A colon may be used
       in place of an equals sign for numeric or  string  setting
       assignments;  however,  we  show only the equals sign form
       below.


       The switches and settings which ftnchek  currently  recog-
       nizes are:

       -arguments=list
              Control warnings about subprogram type and argument
              mismatches.  Default = turn-on = all.

       -array=list
              Control warnings in  checking  array  arguments  of
              subprograms.  Default = turn-on = all.

       -calltree=list
              Produce  subprogram call hierarchy in one of 3 for-
              mats: text call-tree, who-calls-who and VCG.

       -check Perform checking.  Default = yes.

       -columns=num
              Set maximum line length  to  num  columns.  (Beyond
              this  is ignored.)  Turn-on = max = 132.  Default =
              72.

       -common=list
              Set degree of strictness in checking COMMON blocks.

       -crossref
              Print  cross-reference list of subprogram calls and
              COMMON block use.  Default = no.



                            July 1999                           2





FTNCHEK 2.11(1L)                                 FTNCHEK 2.11(1L)


       -declare
              Print a list of all identifiers whose  datatype  is
              not explicitly declared.  Default = no.

       -division
              Warn  wherever division is done (except division by
              a constant).  Default = no.

       -errors= num
              Set the maximum number of error messages  per  cas-
              cade.  Default = 3.

       -extern
              Warn  if external subprograms which are invoked are
              never defined.  Default = yes.

       -f77=list
              Control specific warnings  about  supported  exten-
              sions to the Fortran 77 Standard.  Default  = none.

       -f90=list
              Control specific warnings  about  supported  exten-
              sions  to  the  Fortran  77  Standard that were not
              adopted  as  part  of  the  Fortran  90   Standard.
              Default  = none.

       -f95=list
              Control specific warnings about standard Fortran 77
              features that were  deleted  from  the  Fortran  95
              Standard.  Default  = none.

       -help  Print command summary.  Default = no.

       -include=path
              Define  a  directory  to  search for INCLUDE files.
              Cumulative.

       -intrinsic=list
              Control treatment of  nonstandard  intrinsic  func-
              tions.   Default = all except vms for Unix version,
              all except unix for VMS version,  all  except  unix
              and vms for other versions.

       -library
              Begin  library  mode: do not warn about subprograms
              in file that are defined but never used.  Default =
              no.

       -list  Print source listing of program.  Default = no.

       -makedcls=list
              Prepare a file of declarations.  The list specifies
              options for the format of  this  file.   Default  =
              none.



                            July 1999                           3





FTNCHEK 2.11(1L)                                 FTNCHEK 2.11(1L)


       -novice
              Give  output  suitable for novice users.  Default =
              yes.

       -output=filename
              Send output to the given file.  Default is to  send
              output  to  the screen. (Default filename extension
              is .lis).

       -pointersize=num
              Set the size of ``Cray pointer'' variables  to  num
              bytes.  Min = 1, max = 16.  Default = turn-on = 4

       -portability=list
              Warn about non-portable usages.  Default = none.

       -pretty=list
              Give warnings for possibly misleading appearance of
              source code.    Default = all.

       -project
              Create  project  file  (see   explanation   below).
              Default = no.

       -pure  Assume  functions  are  pure,  i.e.  have  no  side
              effects.  Default = yes.

       -quiet Produce less verbose output.  Default = no.

       -reference
              Print table of subprograms referenced by each  sub-
              program.  Default = no.

       -resources
              Print  amount  of  resources  used in analyzing the
              program.  Default = no.

       -sixchar
              List any variable names which clash at 6 characters
              length.  Default = no.

       -sort  Print  list  of  subprograms sorted in prerequisite
              order.  Default = no.

       -source=list
              Select source formatting options: DEC Fortran  tab-
              formatted lines, VMS-style INCLUDE statement, UNIX-
              style backslash escape sequences, and implicit typ-
              ing of parameters.  Default = none.

       -symtab
              Print  symbol table for each subprogram.  Default =
              no.




                            July 1999                           4





FTNCHEK 2.11(1L)                                 FTNCHEK 2.11(1L)


       -truncation=list
              Check for possible loss of accuracy by  truncation.
              Default = all.

       -usage=list
              Control  warnings  about  unused  or  uninitialized
              variables, common blocks, etc.  Default = all.

       -vcg   Produce VCG format of call graph.

       -version
              Print version number.  Default = no.

       -volatile
              Assume COMMON blocks lose definition between  acti-
              vations.   Default  =  no.  (Obsolete.   Use  -com-
              mon=volatile instead.)

       -wordsize=num
              Set the default word size for numeric quantities to
              num bytes.  Default = turn-on = 4 bytes.

       -wrap=num
              Set  output column at which to wrap long error mes-
              sages and warnings to the next line.  If set to  0,
              turn off wrapping.  Default = turn-on = 79.


       When  more  than  one option is used, they should be sepa-
       rated by a blank space, except  on  systems  such  as  VMS
       where options begin with slash ( / ).  No blank spaces may
       be placed around the equals sign  (  =  )  in  a  setting.
       ftnchek  "?"   will  produce a command summary listing all
       options and settings.

       For settings that take a list of  keywords,  namely  -f77,
       -f90,  -f95,  -intrinsic,  -portability, -pretty, -source,
       -truncation, and -usage, the  list  consists  of  keywords
       separated  by  commas or colons.  The list can be omitted,
       having the effect of turning on all the options associated
       with that setting.  Also, if the list is omitted, the set-
       ting name can be prefixed with no or no- to turn  off  all
       the  options  it controls.  For example, -f77 turns on all
       warnings about  nonstandard  constructions,  while  -nof77
       turns them all off.    Three special keywords are:

       help   Print out all the option keywords controlled by the
              setting, with a brief explanation  of  their  mean-
              ings.   This keyword cannot be given in a list with
              other keywords.

       all    Set all options. This turns  on  all  options  con-
              trolled by the setting.




                            July 1999                           5





FTNCHEK 2.11(1L)                                 FTNCHEK 2.11(1L)


       none   Clear all options.  This turns off all options con-
              trolled by the setting.

       These three special keywords must be given in  full.   For
       all other keywords, only as many letters of the keyword as
       are necessary to identify it unambiguously need be  given,
       or a wildcard pattern may be used.  Including a keyword in
       the list turns the corresponding option on.  For  example,
       -f77=intrinsic  would  turn on only the warnings about use
       of nonstandard intrinsic functions.  Prefixing  a  keyword
       by    no-    turns   its   option   off.    For   example,
       -pretty=no-long-line  turns  off  warnings   about   lines
       exceeding  72  columns  in  length while leaving all other
       warnings about misleading appearance in effect.  If a set-
       ting  has default none, you can turn on all options except
       one  or  two   by   using   all   first.    For   example,
       -f77=all,no-include enables warnings about all nonstandard
       extensions except INCLUDE statements.  If  a  setting  has
       default  all,  you can turn off all warnings except one or
       two  by  using  none   first.    For   example,   -trunca-
       tion=none,demotion  would  turn  off all precision related
       warnings except about demotions.  Wildcard  patterns  con-
       tain  an  asterisk  to stand for any string of characters.
       If a wildcard pattern is used, all the warnings that match
       it  are  affected.  If no- is prefixed to the pattern, all
       the matching warnings are turned off, otherwise  they  are
       all  turned  on.  The minimum unambiguous length rule does
       not  apply  to  wildcard  matching.     For  example,  use
       -usage=no-*var* to turn off all warnings relating to vari-
       able usage (both local and common).  (Unix users may  need
       to quote any options containing wildcards in order to pre-
       vent the shell from attempting to expand them.)  Wildcards
       are  recognized  only in lists of warning keywords, not in
       the top-level options themselves.

       When ftnchek starts up, it looks for environment variables
       and  also  for a preferences file.  Any options defined in
       the environment or in the preferences  file  are  used  as
       defaults  in  place  of  the  built-in defaults.  They are
       over-ridden by any command line options.  See the  section
       on changing the defaults for details about the environment
       options and the preferences file.


       When giving a name of an  input  file,  the  extension  is
       optional.   If  no  extension is given, ftnchek will first
       look for a project file with extension .prj, and will  use
       that  if  it exists.  If not, then ftnchek will look for a
       Fortran source file with the extension .for for  VMS  sys-
       tems, .f for UNIX systems.  More than one file name can be
       given to ftnchek, and it will process the modules  in  all
       files as if they were in a single file.





                            July 1999                           6





FTNCHEK 2.11(1L)                                 FTNCHEK 2.11(1L)


       Wildcards are allowed in the specification of filenames on
       the command line for the VMS and MS-DOS versions, as  also
       of  course  under  UNIX and any other system that performs
       wildcard expansion in the command processor.

       If no filename is given, ftnchek will read input from  the
       standard input.


INSTALLATION AND SUPPORT
       The  ftnchek program is free software.  It can be obtained
       by anonymous ftp from  many  software  servers,  including
       ftp://netlib.org/fortran  .   If the file extension is .Z,
       uncompress with the Unix uncompress(1)  utility.   If  the
       file  extension is .gz, uncompress with the GNU gunzip(1L)
       program.  Then use tar(1) to unpack the files into a  sub-
       directory.

       Installation requires a C compiler for your computer.  See
       the  INSTALL  file  provided  with  the  distribution  for
       instructions  on  installing ftnchek on your system.  Exe-
       cutable binary for particular systems such as  IBM  PC  or
       Macintosh,  as available, can be obtained by anonymous ftp
       from ftp://ftp.dsm.fordham.edu/pub/ftnchek  .   Assistance
       in preparing such executable binary forms is welcome.

       Information about the latest version and the status of the
       project can be obtained by the Internet  command  ``finger
       ftnchek@mary.fordham.edu'',  or by visiting ftnchek's home
       page, http://www.dsm.fordham.edu/~ftnchek .   For  further
       information and to report bugs, you may contact Dr. Robert
       Moniot at the following address:

                           moniot@fordham.edu























                            July 1999                           7


